Конструкторы
При создании объекта часто требуется инициализация его элементов. Для разрешения этой проблемы используется функция (метод) – конструктор.
Конструктор – это функция класса с тем же именем, что и класс, который используется для инициализации элементов объекта класса.
Рассматривают две разновидности конструкторов:
- по умолчанию;
- с параметром.
Синтаксис:
class имя_класса
{закрытые переменные класса
public:
имя_класса(); //конструктор по умолчанию
имя_класса(список параметров); //конструктор с параметром
…
открытые функции и переменные класса;
};
Правила использования конструктора:
- Имя конструктора должно совпадать с именем класса;
- Для конструктора не указывается тип возвращаемого значения, даже не допустим.
- В классе может быть любое число конструкторов;
- Если конструктор не вызывается явно, то он будет вызван автоматически при создании объекта с использованием знаний параметров по умолчанию;
- Если конструктор не описан явно, то он генерируется транслятором без участия программиста.
В вызове конструктора по сравнению с другими методами существуют следующие особенности:
- если конструктор не вызывается явно, то он будет вызван автоматически при создании объекта с использованием значений параметров по умолчанию;
- если конструктор не описан явно, то он генерируется транслятором без участия программиста.
Объявление конструкторов:
1) int a;
myclass() {a=10;}; //конструктор по умолчанию
void show() {cout <<”Значения a=”<<a;};
2) { int a;
public
myclass(int x=4) {a=x;}; // конструктор с установленным по умолчанию аргументом
void show() {cout<<”Значения a=”<<a;}
};
3){ int a;
public:
myclass(int x) {a=x;}; // конструктор с параметром
void show() {cout<<”Значения a=”<<a;)
};
4) { int a, b;
public:
myclass(int x, int y) {a=x; b=y;}; // конструктор с двумя параметрами
void show() {cout<<a<< “ ”<<b;};
};
Использование конструкторов в программах:
1) void main
{myclass ob; // при объявлении объекта он автоматически инициализируется указанным значением
ob.show();
};
2) void main()
{int d;
cout<<”Введите параметр”<<’\n’;
cin>>d;
myclass ob(d); //конструктор с параметром
ob.show ();
};
|