Объектно-ориентированный язык программирования С++ в примерах. Сивохин А.В. - 24 стр.

UptoLike

Составители: 

Деструкторы удаляют создаваемые конструкторами объекты.Они
вызываются программистом или автоматически ,когда рассматрива-
емый объект прекращает свое существование(выход из области
действия).
Конструкторы и деструкторы являются членами класса,и на
них распространяются многие правила для функций-членов клас-
са.Однако,существует ряд специфических правил:
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