ВУЗ:
Составители:
Рубрика:
7
явно включить специальную компонентную функцию,
называемую конструктором. Формат определения конструктора следую-
щий:
имя_класса(список_форм_параметров){операторы_тела_конструктора}
Имя этой компонентной функции по правилам языка С++ должно
совпадать с именем класса. Такая функция автоматически вызывается при
определении или размещении в памяти с помощью оператора new каждого
объекта класса.
Пример.
сomplex(double re1 = 0.0,double im1 = 0.0){re = re1; im = im1;}
Конструктор выделяет память для объекта и инициализирует дан-
ные члены класса.
Конструктор имеет ряд особенностей:
* Для конструктора не определяется тип возвращаемого значения.
Даже тип void не допустим.
*Указатель на конструктор не может быть определен, и соответст-
венно нельзя получить адрес конструктора.
*Конструкторы не наследуются.
*Конструкторы не могут быть описаны с ключевыми словами virtual,
static, const, mutuable, valatile.
Конструктор всегда существует для любого класса, причем, если он
не определен явно, он создается автоматически. По умолчанию создается
конструктор без параметров и конструктор копирования. Если конструктор
описан явно, то конструктор по умолчанию не создается. По умолчанию
конструкторы создаются общедоступными (public).
Параметром конструктора не может быть его собственный класс, но
может быть ссылка на него (T&). Без явного указания программиста кон-
структор всегда автоматически вызывается при определении (создании)
объекта. В этом случае вызывается конструктор без параметров. Для явно-
го вызова конструктора используются две формы:
имя_класса имя_объекта (фактические_параметры);
имя_класса (фактические_параметры);
Первая форма допускается только при не пустом списке фактических
параметров. Она предусматривает вызов конструктора при определении
нового объекта данного класса:
complex ss (5.9,0.15);
Вторая форма вызова приводит к созданию объекта без имени:
complex ss = complex (5.9,0.15);
Страницы
- « первая
- ‹ предыдущая
- …
- 4
- 5
- 6
- 7
- 8
- …
- следующая ›
- последняя »