ете добиться эффекта повышающе

Автор admin Воскресенье, 21 июня 2009 11:32

ете добиться эффекта повышающего преобразования к Poingable и Bingable, но не сможете выполнить обратное понижающее преобразование к Outer. В следующем примере продемонстрирован более типичный подход: доступ к объектам внутренних классов осуществляется с помощью обычных функций вместо автоматических функций преобразования типа. Пример Вооружившись заголовочными файлами Observer и Observable, а также идиомой внутреннего класса, мы переходим к рассмотрению паттерна Наблюдатель: //: C10:0bservedFlower.cpp // Паттерн Наблюдатель. #i nclude #include #include #i nclude #include “Observable.h” using namespace std: class Flower { bool isOpen; public: FlowerO : is0pen(false). openNotifier(this). closeNotifier(this) {} void openO { // Цветок открывает лепестки isOpen = true: openNoti fi er.noti fyObservers(): closeNotifier.openO; } void closeO { // Цветок закрывает лепестки isOpen = false: closeNotifier.notifyObservers(): openNotifier.close(): } // Применение идиомы “внутреннего класса” class OpenNotifier: friend class Flower::OpenNotifier; class OpenNotifier : public Obse


Комментарии закрыты.