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

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

Если производный класс осуществляет присваивание указателю this, то конструктор его базового класса будет вызываться только после этого присваивания, и значение указателя this в конструкторе базового класса будет тем, которое присвоено конструктором производного класса. Если базовый класс присваивает указателю this, то будет присвоено то значение, которое использует конструктор производного класса.

Например:

#include

struct base { base(); };

Возможно вы искали - Статья: TClientSocket & TServerSocket

struct derived : base { derived(); }

base::base()

{

cout << "\tbase 1: this=" << int(this) << "\n";

if (this == 0) this = (base*)27;

Похожий материал - Статья: Альтернативные Интерфейсы

cout << "\tbase 2: this=" << int(this) << "\n";

}

derived::derived()

{

cout << "\tderived 1: this=" << int(this) << "\n";

Очень интересно - Статья: Оптимизация приложений С++Builder в архитектуре клиент/сервер

this = (this == 0) ? (derived*)43 : this;

cout << "\tderived 2: this=" << int(this) << "\n";

}

main()

{

Вам будет интересно - Статья: Законченная программа

cout << "base b;\n";

base b;

cout << "new base b;\n";

new base;

cout << "derived d;\n";

Похожий материал - Реферат: Роль OSS/BSS в деятельности оператора связи: практический подход

derived d;

cout << "new derived d;\n";

new derived;

cout << "at the end\n";