Делегирующий конструктор в C++
Когда короткая форма создания должна привести к той же записи полей, что и полный конструктор, используют делегирующий конструктор: в списке инициализации вызывают другой конструктор этого класса.
Запись User() : User(0) вызывает конструктор
с параметром и передает ему 0. Запишем класс User:
#include <iostream>
class User {
public:
int age;
User(int age) : age(age) {
}
User() : User(0) {
}
void showAge() {
std::cout << age << "\n";
}
};
Создадим объект этого класса без аргументов и выведем возраст:
int main() {
User user;
user.showAge();
return 0;
}
Сделайте класс Product с конструктором названия и цены и делегирующим конструктором только с названием, где цена становится 0, затем создайте товар pen коротким способом и выведите поля.