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

    +162

    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
    21. 21
    class GlData2DLine
    {
      virtual std::vector<Vec2d> getDecimatedPoints();
     protected:
      std::vector<Vec2d> c_decimated_points;
    }
    
    std::vector<Vec2d> GlData2DLine::getDecimatedPoints()
    {
      return c_decimated_points;
    }
    
    class GlData2DLineOD : public GlData2DLine
    {
      virtual std::vector<Vec2d> getDecimatedPoints();
    }
    
    std::vector<Vec2d> GlData2DLineOD::getDecimatedPoints()
    {
      return c_decimated_points;
    }

    Наш любимый китаец увлекся ООП и полиморфизмом что забыл очевидное.

    Запостил: kitaec, 09 Февраля 2011

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

    • список матриц? неплохо.

      а в целом это называется плодить сущности. у аффтара явно размножение личностисущности
      Ответить
      • в данном случае наличие наследования оправдано. просто он должен был выбрать механизм - либо настраивать поведение класса с помощью виртуальных функций, либо каждый наследник будет наполнять protected field объявленный в базовом классе. Одно исключает другое.
        Ответить
        • филд для хранения значения, а метод для пост-фильтрации его.
          Ответить
    • Расстрельный список?

      decimate
      [ˈdesɪmeɪt] гл. 1) воен. приговаривать к казни каждого десятого 2) перен. уничтожать, косить, опустошать Syn : Typhus fever decimated the school periodically. ≈ Время от времени тиф забирал жизни школьников. 3) ист. взимать десятину.
      Ответить

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