logo search
ООП 2012

24) Конструкторы. Инициализация полей при наличии конструктора.

Конструктор – метод, автоматически вызываемый при выделении памяти под объект. Используется для инициализации полей объекта. Автоматический вызов страхует от ошибки оставить поля неинициализированными.

class CBook

{protected: char Name[30];

int Pages;

public:

CBook(char *name,int pages) {

Pages=pages; strcpy(Name,name);

}…

При создании объектов классов с конструкторами параметры записываются в круглых скобках:

void main()

{ CBook D("J.London. Smoke Bellew",267);

Конструкторы, как и другие функции, можно перегружать. Специальный конструктор без параметров (инициализирующий или пустой) используется для создания объектов, которым при выделении памяти не могут быть переданы значения полей.

а) CBook(){} // неинициализирующий конструктор без параметров, используется для создания неинициализированных объектов

б) CBook(){ Name[0]='\0'; Pages=0; } // инициализирующий конструктор без параметров, создает однотипно инициализированные объекты

При создании объектов посредством конструкторов без параметров круглые скобки не указывают: