Open WAG13 opened 4 years ago
При виклику конструктора класу викликається конструктори всіх полів. В дефолтному конструкторі викликаються дефолтні конструктори полів. Ми можемо явно викликати конструктор полів.
class A {
std::vector<std::string> data;
private:
A (int size = 0) : data(size, "example") {}
}
В даному прикладі ми явно викликаємо конструктор вектора.
наприклад class A{ int a; public: A():a(10){} }
class A { int value; public: A():a(7) {} } Тобто в конструкторі класу викликати конструктор для поля класу
Як делегуючий конструктор class Student { std::string name; Student(name): name(name) { } }
сlass A { int a, b; A(a, b) : a(a), b(b) { } }
Делегуючі конструктори
class Point{
int x;
int y;
public:
Point():x(0),y(0){}
Point(int x, int y):x(x),y(y){}
}
class My { int a, b; public: My() My(int a, int b) { this->a=a; this->b=b; } }:
My obj(2, 3); //викликається конструктор My(int a, int b)