ВУЗ:
Составители:
Рубрика:
Деструкторы удаляют создаваемые конструкторами объекты.Они
вызываются программистом или автоматически ,когда рассматрива-
емый объект прекращает свое существование(выход из области
действия).
Конструкторы и деструкторы являются членами класса,и на
них распространяются многие правила для функций-членов клас-
са.Однако,существует ряд специфических правил:
1.Для них не надо указывать тип возвращаемого значения,в
том числе и тип void.
2.Они не могут наследоваться,хотя производный класс может
вызывать как конструкторы,так и деструкторы базового класса.
3.Конструкторы,как и большинство функций языка С++,могут
иметь аргументы по умолчанию или использовать список иници-
ализации параметров.
4.Конструкторы никогда не бывают виртуальными,а деструкто-
ры могут быть,если необходимо,и виртуальными.
5.В программе не разрешается использовать указатели на
конструкторы или деструкторы.
6.Конструкторы и деструкторы могут иногда генерироваться
автоматически,если они не определены явно в классе;очень ча-
сто генерируются автоматически также и их вызовы без явного
указания со стороны программиста.При этом конструктор или де-
структор,сгенерированный компилятором,является открытым(pu-
blic).
7.Нельзя вызывать конструктор как обычную функцию;конст-
руктор вызывается только при определении объекта или при его
создании с помощью операции new,аргументом которой является
вызов соответствующего конструктора.
8.При вызове деструктора требуется указывать его полное
имя,включающее имя класса:
class x* p;
..........
p->x::~x();/*-правильный вызов деструктора класса x; */
x::x(); /*-конструктор нельзя вызывать как обычную */
/* функцию; */
24
Деструкторы удаляют создаваемые конструкторами объекты.Они вызываются программистом или автоматически ,когда рассматрива- емый объект прекращает свое существование(выход из области действия). Конструкторы и деструкторы являются членами класса,и на них распространяются многие правила для функций-членов клас- са.Однако,существует ряд специфических правил: 1.Для них не надо указывать тип возвращаемого значения,в том числе и тип void. 2.Они не могут наследоваться,хотя производный класс может вызывать как конструкторы,так и деструкторы базового класса. 3.Конструкторы,как и большинство функций языка С++,могут иметь аргументы по умолчанию или использовать список иници- ализации параметров. 4.Конструкторы никогда не бывают виртуальными,а деструкто- ры могут быть,если необходимо,и виртуальными. 5.В программе не разрешается использовать указатели на конструкторы или деструкторы. 6.Конструкторы и деструкторы могут иногда генерироваться автоматически,если они не определены явно в классе;очень ча- сто генерируются автоматически также и их вызовы без явного указания со стороны программиста.При этом конструктор или де- структор,сгенерированный компилятором,является открытым(pu- blic). 7.Нельзя вызывать конструктор как обычную функцию;конст- руктор вызывается только при определении объекта или при его создании с помощью операции new,аргументом которой является вызов соответствующего конструктора. 8.При вызове деструктора требуется указывать его полное имя,включающее имя класса: class x* p; .......... p->x::~x();/*-правильный вызов деструктора класса x; */ x::x(); /*-конструктор нельзя вызывать как обычную */ /* функцию; */ 24
Страницы
- « первая
- ‹ предыдущая
- …
- 22
- 23
- 24
- 25
- 26
- …
- следующая ›
- последняя »