25 Конструкторы с++: конструктор по
умолчанию, конструктор копирования, перегрузка конструкторов.
Параметры конструктора могут быть любого типа
за исключением класса, элементом которого является данный конструктор.
Конструктор может принимать в качестве
параметра ссылку на свой собственный класс, в этом случае он называется конструктором
копирования.
Конструктор, не принимающий параметров
вообще, называется конструктором по умолчанию
Конструктор по умолчанию:
Конструктор может иметь аргументы по
умолчанию
X
(int=0)
X
(int j=1; float k=21);
При вызове конструктора следует избегать неоднозначностей.
X mx(1,2); правильно
X mx(1); неправильно
X mx;неправильно
Конструктор копирования:
Для класса Х это такой конструктор, который
может быть вызван с единственным аргументом - ссылкой на Х.
X:: X(const &X)
class X
{
X(&X)
}
В конструкторе копирования допустимым
является также аргументы по умолчанию
Конструкторы копирования запускаются при
копировании объектов данного класса, обычно в случае объявления с
инициализацией об-том другого класса.
Перегрузка конструкторов:
Конструкторы м.б. перегружены, что позволяет создавать объекты в зависимости
от значений, используемых при инициализации.
Class
X
{
int integer_part;
double double_part;
public:
X(int i){integer_part =i;}
X(double d){double_part=d;}
}
X
one (10);
X one (3.14);