Он описывается как this – это скрытый первый аргумент всех нестатических функций-членов. Всегда имеет тип “указатель на текущий класс”.
Использование блоков памяти
Ошибки области видимости возникают потому, что C++ освобождает выделенную для локальных переменных память автоматически. Для решения этой проблемы необходим блок памяти, контролируемый непосредственно программистом. В этом блоке можно выделять память под переменные и удалять их независимо от того, локальный это объект, или глобальный. Такой блок памяти называется кучей. Память в куче можно выделить, используя оператор new; он пишется вместе с типом объекта, под который нужно выделить память. Приведенный ниже пример выделяет из кучи память для переменной типа double.
double *child(void)
{
double *Var = new double;
return Var;
}
Теперь, несмотря на то что переменная Var имеет область видимости в пределах функции child() , память, на которую указывает эта переменная, не будет освобождена после выполнения функции. Выделение и освобождение памяти в куче осуществляется только явно. Освобождение памяти в куче выполняется с помощью команды delete, в данном случае delete Var;
Литература
1. Дэвис, Стефан Р. С++ для “чайников” / Стефан Р. Дэвис – М.: Издательский дом “Вильямс”, 2003. – 336с.
2. Хомоненко, А.Д. Программирование на С++ / В.П. Аверкин, А.И. Бобровский, В.В. Веснич, В.Ф. Радушинский, А.Д. Хомоненко –