8.5.8 Свободная Память

8.5.8 Свободная Память

Когда с помощью операции new создается классовый объект, то для получения необходимой памяти конструктор будет (неяно) использовать operator new (#7.1). Конструктор может осществить свое собственное резервирование памяти посредством присваивания указателю this до каких-либо использований члна. С помощью присваивания this значения ноль деструктор мжет избежать стандартной операции дерезервирования памяти для объекта его класса. Например:

class cl (* int v[10]; cl () (* this = my_own_allocator (sizeof (cl)); *) ~cl () (* my_own_deallocator (this); this = 0; *) *) На входе в конструктор this являеется не-нулем, если рзервирование памяти уже имело место (как это имеет место для auto, static объектов и объектов членов), и нулем в остальных случаях. Вызовы конструкторов для базового класса и объектов члнов будут иметь место после присваивания указателю this. Если

конструктор базового класса осуществляет присваивание this, то новое значение также будет использоваться конструктором производного класса (если таковой есть).

При уничтожении вектора объектов класса с деструктором необходимо указывать число элементов. Например:

class X (* ... ~X(); *); X* p = new X [size]; delete[size] p;

Поделитесь на страничке

Следующая глава >

Похожие главы из других книг:

3.4. Свободная и несвободная модели коммерческого ПО

Из книги автора

3.4. Свободная и несвободная модели коммерческого ПО После того, как программы были признаны объектом авторского права (в том числе, исключительных имущественных прав) – в семидесятых-девяностых гг. XX в. (в разных странах) – в профессии и отрасли оформились два подхода к


Свободная орбита

Из книги автора

Свободная орбита Команда 3DFORBIT активизирует управление интерактивным просмотром объектов в трехмерном режиме, используя неограниченную орбиту, обеспечивающую движение по кругу в любом направлении без привязки к плоскости. При этом точка зрения не ограничена


Свободная орбита

Из книги автора

Свободная орбита Команда 3DFORBIT активизирует управление интерактивным просмотром объектов в трехмерном режиме, используя неограниченную орбиту, обеспечивающую движение по кругу в любом направлении без привязки к плоскости. При этом точка зрения не ограничена


Память

Из книги автора

Память HeapSize Функция HeapSize возвращает размер блока памяти, выделенного из кучи функциями HeapAlloc или HeapReAlloc , в байтах. DWORD HeapSize ( HANDLE hHeap , // дескориптор кучи DWORD dwFlags , // контрольные флаги размера кучи LPCVOID lpMem // указатель на память, чей размер возвращается ); Параметры hHeap -


Свободная поддержка SQL

Из книги автора

Свободная поддержка SQL По всем вопросам, связанным с SQL Firebird, присоединяйтесь к форуму поддержки Firebird на http://www.yahoogroups.com/community/firebird-support. Это добровольный список адресов электронной почты, где знающие и новые пользователи Firebird делятся своим опытом. Если вы предпочитаете


Свободная орбита

Из книги автора

Свободная орбита Команда 3DFORBIT активизирует управление интерактивным просмотром объектов в трехмерном режиме, используя неограниченную орбиту, обеспечивающую движение по кругу в любом направлении без привязки к плоскости. При этом точка зрения не ограничена


Оперативная память

Из книги автора

Оперативная память Оперативная память (оперативное запоминающее устройство, ОЗУ, «мозги», «оперативка») – микросхемы, используемые процессором для временного хранения данных при выполнении расчетов. В подавляющем большинстве случаев такая память представлена в виде


Свободная орбита

Из книги автора

Свободная орбита Команда 3DFORBIT активизирует управление интерактивным просмотром объектов в трехмерном режиме, используя неограниченную орбиту, обеспечивающую движение по кругу в любом направлении без привязки к плоскости. При этом точка зрения не ограничена


5.5.3 Свободная Память

Из книги автора

5.5.3 Свободная Память Рассмотрим:main() (* table* p = new table(100); table* q = new table(200); delete p; delete p; // возможно, ошибка *)Конструктор table::table() будет вызван дважды, как и деструктор table::~table(). То, что С++ не дает никаких грантий, что для объекта, созданного с помощью new, когда-либо будет вызван


7.7 Свободная Память

Из книги автора

7.7 Свободная Память Если вы пользовались классом slist, вы могли обнаружить, что ваша программа тратит на заметное время на размещение и освобождение объектов класса slink. Класс slink – это превоходный пример класса, который может значительно выиграть от того, что программист


7.2.4 Свободная Память

Из книги автора

7.2.4 Свободная Память Операция new создает объект типа имя_типа (см. #8.7), к которому он применен. Время жизни объекта, созданного с пмощью new, не ограничено областью видимости, в которой он создан. Операция new возвращает указатель на созданный ей объект. Когда объект является


8.5.8 Свободная Память

Из книги автора

8.5.8 Свободная Память Когда с помощью операции new создается классовый объект, то для получения необходимой памяти конструктор будет (неяно) использовать operator new (#7.1). Конструктор может осществить свое собственное резервирование памяти посредством присваивания указателю


Свободная сеть по Джону Макафи: как любопытство АНБ может стать фундаментом нового бизнеса Михаил Ваннах

Из книги автора

Свободная сеть по Джону Макафи: как любопытство АНБ может стать фундаментом нового бизнеса Михаил Ваннах Опубликовано 02 октября 2013 Эдвард Сноуден вряд ли получит Нобелевскую премию мира. Да и судьба разговорчивого идеалиста едва ли сложится


СОФТЕРРА: Память на лица, или Лица на память

Из книги автора

СОФТЕРРА: Память на лица, или Лица на память Автор: Алексей КлимовВышла девятая версия ACDSee. Судя по объему нововведений, это не «Девятый вал» Айвазовского [Иван Айвазовский, «Девятый вал». 1850 г] и даже не «9 рота» Бондарчука [Федор Бондарчук, «9 рота». 2005 г]. Поэтому в обзоре


4. Память

Из книги автора

4. Память Когда вы читаете эту книгу, идете по переполненной улице, слушаете симфонию, успокаиваете плачущего ребенка, ваш мозг набит пространственными и временными паттернами от всех ваших органов чувств. Мир это океан постоянно меняющихся паттернов, которые приходят,