С++ - язык, который изучается постепенно.Уничтожающие функции


Материалы книги получены с http://www.itlibitum.ru/

Уничтожающие функции

Уничтожающие функции (junkyard functions) уничтожают экземпляры классов. Идея заключается в том, чтобы сделать деструктор закрытым или защищенным, а затем предоставить функцию, в которой инкапсулируется вызов оператора delete.

class Grandpa {

protected:

virtual ~Grandpa();

public:

static Grandpa make();

static void destroy(Grandpa*);

};

// В файле grandpa.cpp

void Grandpa::destroy(Grandpa* g)

{

delete g;

}

Возможно, сейчас это не имеет особого смысла, но в нестандартных схемах управления памятью уничтожающие функции способны принести очень большую пользу. А пока скажите начальнику и коллегам, что уничтожающие функции нужны вам ради симметрии. Они косо посмотрят на вас и отойдут подальше, так что на какое-то время вам будет спокойнее работать.


Назад    Содержание    Далее    

Copyright 2005. Климов Александр. All Right Reserved.
Сайт создан в системе uCoz