gable. Каждый внутренний класс
Автор admin Воскресенье, 21 июня 2009 11:32
gable. Каждый внутренний класс создается в одном закрытом экземпляре, инициализируемом в конструкторе Outer. Создание вложенных объектов и возвращение ссылок на них решает проблемы с жизненным циклом объектов. Следует помнить, что оба внутренних класса определяются закрытыми, и клиентский код не получает доступа к деталям реализации, потому что функции 518 Глава 10 • Паттерны проектирования доступа operator Poingable&() и operator Bingable&() возвращают только ссылку на интерфейс, получаемый в результате повышающего преобразования, но не на объект, его реализующий. Более того, из-за закрытости внутренних классов клиентский код даже не может выполнить понижающее преобразование к классам реализации; таким образом, интерфейс полностью изолируется от реализации. Мы также определили функции автоматического преобразования типов operator Poingable&() и operator Bingable&(). Как видно из функции main(), это позволяет использовать конструкции, выглядящие так, словно Outer порождается множественным наследованием от Poingable и Bingable. Различие состоит в том, что «преобразования» являются односторонними: вы мож
Комментарии закрыты.
Последние комментарии