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

    +158

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    11. 11
    template <typename T> struct Rect : public ICollidable<T>  {
                T top, left, width, height;
    ...
                Rect(T _top, T _left, T w, T h)
                : top(_top)
                , left(_left)
                , width(w)
                , height(h)
                {};
    ...
    };

    Не расслабляемся: естественный порядок аргументов - это для ламеров!

    Запостил: Kirinyale, 25 Января 2011

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

    • показать все, что скрытоРазве C++ поддерживает наследование структур? Я думал это только ООП для классов.
      Ответить
      • С++ вообще всё поддерживает. Жаль, что иногда через задницу.
        Ответить
      • В С++ структуры (struct) и классы (class) взаимозаменяемы. Разница только в спецификаторе доступа по умолчанию. В структурах все члены открытые, в классе - закрытые.
        Ответить
      • показать все, что скрытоВ С++ нет никаких "структур". В С++ есть только классы. `class`, `struct` и `union` - альтернативные способы объявления классов.
        Ответить
    • в матбиблиотеке иррлихта, функции которым нужен угол в некоторых случаях принимают его в радианах а в остальных в градусах... иногда бывает весело отлаживать...
      Ответить
      • В библиотеке FreeType ещё веселее: одно и то же поле в структуре, в зависимости от контекста, используется либо как Fixed 16:16, либо как Fixed 26:6. Чтобы определить, что именно передавать в очередную функцию (или что именно она тебе только что вернула), приходится вдумчиво курить мануалы и много гадать на кофейной гуще.
        Ответить
    • Одобряю. Пусть нечитальщики страдают!
      Ответить
    • мне вот интересно, зачем в Rect добавлять IColidable?
      прямоугольник он вроде бы как сам по себе...
      Ответить
      • Это, видимо, из двухмерной игры. Какие-нибудь какашки бегуют по экрану и сталкиваются друг с другом. Rect, видимо, предок всех этих какашек. Неправильное название дали для класса. Нужно было назвать ShitParent, ShitAbstract, ShitBase или как-то так. Хотябы ShitRect...
        Ответить
        • Если бы сталкивались... здесь всё гораздо гениальнее: ICollidable используется для проверки попадания точки на экране в прямо- или многоугольник. Проще говоря, для кликанья по кнопкам.

          А насчёт ShitRect - так там уже была где-то переменная m_fuckingSheet или что-то вроде того...

          Главное, оптимально-то как! На инициализации нулями сэкономили, зато на виртуальной таблице отыгрались. Математика-с.
          Ответить

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