Методы-фабрики

Как вы уже знаете, имя конструктора класса всегда совпадает с именем класса, вплоть до регистра символов. Если нам необходимо дать осмысленное название или вернуть значение другого класса, то можно создать статический метод, который будет использоваться для создания объектов. Название такого метода может быть произвольным и тип возвращаемого значения тоже. Такие методы принято называть методами-фабриками (листинг 13.36).

Листинг 13.36. Методы-фабрики

#include <iostream>

class C {
   int x_;
   C(int x): x_(x) {}
public:
   static C getInstance(int x) { return C(x); }
   int getX() { return x_; }
};

int main() {
   // Так нельзя, у конструктора модификатор private
   // C c1(10);
   C c2 = C::getInstance(10);
   C c3 = C::getInstance(45);
   std::cout << c2.getX() << std::endl; // 10
   std::cout << c3.getX() << std::endl; // 45
   return 0;
}

Учебник C++ (MinGW-W64)
Учебник C++ (MinGW-W64) в формате PDF

Помощь сайту

ЮMoney (Yandex-деньги): 410011140483022

ПАО Сбербанк:
Счет: 40817810855006152256
Реквизиты банка:
Наименование: СЕВЕРО-ЗАПАДНЫЙ БАНК ПАО СБЕРБАНК
Корреспондентский счет: 30101810500000000653
БИК: 044030653
КПП: 784243001
ОКПО: 09171401
ОКОНХ: 96130
Скриншот реквизитов