Open WAG13 opened 4 years ago
або
class A{
private:
int a;
int b;
public:
A(int a_, int b_):a(a_),b(b_) {//...
}
A(int a_):A(a_,0) {//...
}
A():A(0,0) {//...
}
}
За допомогою делегуючих конструкторів
Якщо код дублюється в конструкторах підкласів, то слід створити конструктор в їх суперкласі і винести в нього спільний для підкласів код. Якщо код дублюється в різних конструкторах одного класу, можна використати делегуючи конструктори - це такий ланцюжок конструкторів, де один конструктор викликає інший конструктор.
можна винести весь код,який дублюється в спільний конструктор і викликати цей конструктор під час іншого.
Викликати інший конструктор при виклику даного конструктора або ж якщо потрібна частина коду з іншого конструктора лише за певних умов, то винести цей код в private функцію класу і викликати в конструкторах її.
Об'єднати спільний для конструкторів код та викликати цей конструктор у іншому
наприклад