Vladimir "Dair" Lebedev-Schmidthof (dair_spb) wrote,
Vladimir "Dair" Lebedev-Schmidthof
dair_spb

программистское, C++

http://www.livejournal.com/community/cpp/202678.html

откуда-то я подобрал в свое время, что delete/free по-хорошему стОит делать в том же компоненте (функции ли, классе ли), где и new/malloc...

иначе задолбаешься, в случае чего, segfault'ы ловить...


типа так:

void myFunc() {
  ...
  MyClass * mc = new MyClass(...);
  ...
  mc->memberFunc( ... );
  ...
  delete mc;
  ...
}


или

class MyClass {
  public:
    MyClass();
    ~MyClass();

    void doSomething();
  protected:
    MyOtherClass * other;
};

MyClass::MyClass()
{
  other = new MyOtherClass();
}

MyClass::~MyClass()
{
  delete other;
}

void MyClass::doSomething()
{
  ...
  other->letOtherDoSomething();
  ...
}





Приведенный по ссылке пример для меня всегда был из разряда "never-ever do that".
Задумался.
Subscribe

  • Самоизоляция 1020

    Автор тут "Man, we've gotta open the gates." "We've been through this, Phil. The Mongols are still outside." "But I've gotta harvest my turnips"…

  • Построение процессов

    Сделал тут заказ в одном Интернет-магазине. Через какое-то время звонок. Беру трубку чтобы зачем-то опять говорить "да, я делал заказ и даже уже…

  • Ищу программиста

    Ищу программиста себе на работу работать работу. В компании "Транзас" (которая теперь подразделение финской компании Wärtsilä) делают разное для…

  • Post a new comment

    Error

    Anonymous comments are disabled in this journal

    default userpic

    Your reply will be screened

    Your IP address will be recorded 

  • 8 comments