1. C++ / Говнокод #2271

    +68.5

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    11. 11
    12. 12
    13. 13
    14. 14
    15. 15
    16. 16
    17. 17
    18. 18
    19. 19
    20. 20
    class A
    {
      public:
         int Left;
         int Top;
         int Right;
         int Bottom;
      public:
         A ()
         {
              Left = Top = Right = Bottom = 10;
         }
         A (int L, int T, int R, int B)
         {
             L = Left;
             T = Top;
             R = Right;
             B = Bottom;
          }
       };

    Методическое пособие обучающее основам ООП в C++. Для студентов :)

    Запостил: Ground, 12 Декабря 2009

    Комментарии (37) RSS

    • Однако...
      Ответить
    • За "A" убить такого учителя мало...
      Ответить
    • А зачем дополнительно обьявлять секцию public?
      Ответить
      • Чтобы визуально отделить объявление свойств от методов, полагаю. Но конечно его не оправдывает :).
        Ответить
    • У меня голова, чтобы туда есть...
      Ответить
    • И что?
      Ну, возможно название класса не очень. Это повод считать код говнокодом?
      Ответить
      • Вообще не повод что-либо считать "говнокодом", если это учебный пример.
        Его целью может быть только введение пары-тройки ключевых слов, при этом не порождая лишних вопросов со стороны учащихся.
        Это как школьная, университетская и институтская физики. Три учреждения -- три разных науки =]
        Тоже и с программированием. Сначала познакомиться с классом как новой основной идей, потом с подробностями.
        Ответить
        • Код элементарный, чуть лучше чем Hellow World
          Ответить
          • Не имею понятия, чем один учебный код может быть лучше другого...
            Если целью данного кода было показать ключевое слово class и пример нового уровня организации программы, то данный пример свою задачу выполнил.
            А может быть это пример перегруженного конструктора?
            Учебный пример -- это учебный пример.
            Даже пример из "умной книжки" никогда не является "производственным решением", что говорить о студенческой методичке.

            Я категорически против того, чтобы размещать ради "ржача" учебные примеры и студ. лабы.
            Ответить
            • Задачу "как не надо проектировать классы?". Да, выполнил. За это и плюс :-)
              А еще задачу, как не нужно писать конструкторы :-)
              Не слишком ли много задач для одного учебного кода? ;-)
              Ответить
              • Конструирование (кодирование) или проектирование? На проектирование много факторов влияет.
                Ответить
            • Уже с малолетства программеров нужно приучать к правильным вещам, например не довать кривые названия для классов, а то как вырастут, да начнут называть классы A,B,C. Я жеж, как менеджер - повешусь. Готовь кадры с молоду.
              Ответить
              • Бесполезно пытаться с самого начала всё показать объяснить и т.д.
                Я представляю себе, что такое учить людей.
                Если с самого начала нашарашить класс с шаблонными параметрами, отделением реализации, закрытым наследованием обязательной реализации, с размещением в памяти и прочими заморочками, то у студента вспухнет голова... Он ничего не запомнит и не поймёт.
                Название -- это, конечно, вещь важная, но вспомните математику. Вам для примера какие буквы писали? a,b,c x,y,z Когда будут свои проекты делать студенты, то им и объяснят, что программа не читается, что в ней сложно разобраться и ошибки подчеркнут студенту на его же программе.

                Всё, что нужно -- это пояснить перед примером, что он содержит ошибки и не является примером, применимым в реальных условиях.


                Вы не встречали в книжках по программированию сноски, поясняющие, что конкретные примеры могут быть улучшены или даже исправлены?
                Ответить
                • Вообще это можно уже с детства выроботать на уровне рефлекса. Что-бы у ученика даже мысли не возникало писать не информативные названия. Что-бы он даже не видел дурного примера с плохими названиями.

                  (j/k)
                  Ответить
                  • Может быть...
                    Может быть стоит делать относительно более правильные примеры, но очень простые. Но я бы не стал обращать внимание на название, когда что-то такое объясняется к названию не относящееся. Я бы скорее назвал класс __exL1_subTwo__ или что-нибудь ещё более запутанное, чтобы показать, что название сейчас роли не играет. Всё равно в первой же лабе всплывёт читабельность программы...


                    К слову о названиях. (далее юмор)
                    У меня в одном проекте был базовый тип исключенй (он и сейчас есть) sException. Только я понимал, что это исключения проекта S, остальным чудилось что-то другое (и это не строковое исключение). =]
                    (j/k)
                    Ответить
                    • >Но я бы не стал обращать внимание на название
                      И не нужно обращать на это внимание. Просто нужно сделать правильно, как-будто это само сабой разумеющееся.

                      (j/k)
                      p.s.: Классная у тебя подпись. Что-бы это значало?
                      Ответить
                      • (j/k) = just kidding Беззлобная шутка. Как дети друг друга подкалывают. Это не подпись. Это напоминание, модификатор сообщения, который показывает, что сообщение для смеха написано, для подколки, или что мне стало весело, или я не имею в виду того, что написано...

                        (j/c) = just curious Просто интересно.
                        Например:
                        Guest, а какой у тебя рост? (j/c) Вопрос совершенно без определённой цели, просто интересно.

                        Всякие там rotfl lol (rolling over the floor laughting / laughing out loud) оттуда же.
                        Ещё бывают экзотические акронимы:
                        CYFTLT
                        WAO
                        Ответить
      • а что, только название не понравилось? =)))
        Ответить
    • "L = Left;
      T = Top;
      R = Right;
      B = Bottom;"
      тут вообще-то надо наоборот. но это конечно же мелочи...
      Ответить
      • О!
        Точно! Деловое замечание =]
        Ответить
      • Хоть кто-то заметил =) по-моему это первое, на что падает глаз
        Ответить
        • мне вот, например, только это бросилось )
          Ответить
          • и мне=) правда т.к. никто в комментах незаметил, я подумал что в С++ так можно (ниразу на сях неписал)
            Ответить
            • так можно писать, но это бессмысленно
              Ответить
      • Наоборот - это против часовой стрелки!
        Ответить
    • Нет сдесь ничего. Просто кусок кода с опечаткой.
      Ответить
    • Полиморфный конструктор с дефолтными параметрами. Говнокода нет, тут только опечатка, и всё.
      Ответить
    • Говнокод в полный рост. Не считая того, что присвоение вообще левое, копии входищих параметров присваиваются неинициализированные значения и т.п. Есть ведь еще список инициализации конструктора. Ну а то, что класс "A" называется или "public" секция лишний раз - хрен с ним, дело вкуса.
      Ответить
    • При чем здесь волшебние числа, названия и прочее?
      Посмотрите на тело конструктора, который принимает четыре инта, он не класс инициализирует, а эти 4 инта.
      Ответить
      • Да ты чё!! Внатууури????!! Пиздос ты, перечитай.
        Ответить

    Добавить комментарий