JavaScript: для чего используются .extend и .prototype?

Он называется «деструктор», а не «deconstructor».

Внутри деструктора каждого класса вам нужно удалить все остальные переменные-члены, которые были назначены новым.

edit: Чтобы уточнить:

Скажите, что у вас есть

struct A {}

class B {
    A *a;
public:
    B () : a (new A) {}
    ~B() { delete a; }
};

class C {
    A *a;
public:
    C () : a (new A) {}        
};

int main () {
    delete new B;
    delete new C;
}

Выделение экземпляра B, а затем удаление является чистым, потому что то, что B выделяет внутри, также будет удалено в деструкторе.

Но экземпляры класса C будут утечки памяти, поскольку он выделяет экземпляр A, который он не выпускает (в этом случае C даже не имеет деструктора).

119
задан cdeszaq 18 December 2013 в 16:33
поделиться