Классовые объекты
Объект с закрытыми членами не может быть инициализирован с помощью простого присваивания, как это описывалось выше; это же относится к объекту объединение. Если класс имеет конструктор, не получающий значений, то этот конструктор используется для объектов, которые явно не инициализированы.
Параметры для конструктора могут также быть представлены в виде заключенного в круглые скобки списка. Например:
struct complex { float re; float im; complex (float r,float i) { re=r; im=i; } complex (float r) { re=r; im=0; } };
complex zz (1,2.3); complex* zp = new complex (1,2.3);
Инициализация может быть также выполнена с помощью явного присваивания; преобразования производятся. Например,
complex zz1 = complex (1,2.3); complex zz2 = complex (123); complex zz3 = 123; complex zz4 = zz3;
Если конструктор ссылается на объект своего собственного класса, то он будет вызываться при инициализации объекта другим объектом этого класса, но не при инициализации объекта конструктором.
Объект класса, имеющего конструкторы, может быть членом составного объекта только если он сам не имеет конструктора или если его конструкторы не имеют параметров. В последнем случае конструктор вызывается при создании составного объекта. Если член составного объекта является членом класса с деструкторами, то этот деструктор вызывается при уничтожении составного объекта.