Конструктор – это метод (функция), имя которого совпадает с именем класса.
Конструктор предназначен для инициализации объекта и вызывается автоматически при его создании.
Конструктор вызывается, если в программе встречается какая-либо из следующих синтаксических конструкций (см. пример класс монстр):
o Параметризованный конструктор:
имя_ класса имя_объекта [(список параметров)]; // список параметров
// не должен быть пустым
Например, monstr Super(200, 300), Fedia, Z;
Здесь создаются три объекта. Значения неуказанных параметров устанавливаются по умолчанию, т.е. Fedia() - ошибка.
o имя класса (список параметров); // создается объект без имени
// (список параметров может быть пустым)
Например, monstr Х=monstr(1000);
Здесь создается безымянный объект со значением параметра health=1000 (значение второго параметра устанавливается по умолчанию). Выделяется память под объект Х, в которую копируется безымянный объект.
o Такая форма создания объекта возможна в случае, когда для инициализации объекта допускается задать один параметр:
имя_ класса имя_объекта=выражение; // создается объект без имени
// и копируется
Например, monstr Y=500;
Здесь создается безымянный объект со значением параметра health=500 (значение второго параметра устанавливается по умолчанию). Выделяется память под объект Y, в которую копируется безымянный объект.
Параметры конструктора могут иметь любой тип, кроме этого же класса.