Материалы книги получены с http://www.itlibitum.ru/
Снова о двойной передаче: промежуточные базовые классы
Приняв на вооружение производящие функции, мы легко повысим инкапсуляцию двойной передачи.
// В файле grandpa.h
class Grandpa {
public:
// Производящие функции и гомоморфный интерфейс
};
// В файле grandpa.cpp
class RealGrandpa : public Grandpa {
// Промежуточный гомоморфный базовый класс
protected:
// Функции двойной передачи
};
class Dad : public RealGrandpa { ... };
class AuntieEm : public RealGrandpa { ... };
Наличие производящих функций означает, что производные классы можно скрыть. Добавляя промежуточный базовый класс RealGrandpa, мы полностью прячем все жуткие подробности двойной передачи в файле .cpp. Никаких защищенных функций в файле .h!
Назад Содержание Далее
|