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

    −19

    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 Int {
      int * i;
    public:
      Int(int j = 0):i(new int(j)){}
      int* pointer(){return i;}
      int& value(){return *i;}
      ~Int(){delete i; i = nullptr;}
    
    };
    int& operator*(shared_ptr<Int>& i) {
      return i->value();
    }
    int* operator&(shared_ptr<Int>& i) {
      return i->pointer();
    }
    
    int main() {
      shared_ptr<Int> k(new Int(16));
      *k = 64;
      return *k;
    }

    Этот код по-видимому является проявлением сразу двух синдромов - ООП головного мозга и shared_ptr головного мозга. А ещё const'ов не хватает.

    Запостил: gammaker, 02 Ноября 2016

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

    • хуита какая-то. давай говнокод из продакшенов.
      Ответить
    • class Int {
        int const * i;
      public:
        Int(const int j = 0):i(new int(j)){}
        int* pointer() const {return i;}
        int& value() const {return *i;}
        ~Int(){delete i; i = nullptr;}
      
      };
      int& operator*(const shared_ptr<const Int>& i) {
        return i->value();
      }
      int* operator&(cibst shared_ptr<const Int>& i) {
        return i->pointer();
      }
      
      int main() {
        shared_ptr<const Int> k(new Int(16));
        *k = 64;
        return *k;
      }

      [/color]
      Ответить

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