|
Изменение указываемого объекта во время выполнения программы При желании интерфейсный указатель может сменить указываемый объект прямо во время выполнения программы. class Foo; class PFoo { private: Foo* foo; public: PFoo(); void DoSomething(bool x); // Другие функции класса }; void PFoo::DoSomething(bool x) { if (x) { delete foo; foo = new DerivedFromFoo; } Foo->DoSomething(); } Пример уже встречался в предыдущей главе: при попытке неконстантного обращения к указываемому объекту указатель выбирал другую форму этого объекта. Такой подход работает вполне нормально, если не делать глупостей (например, получать адреса членов указываемого объекта). |
Copyright 2005. Климов Александр. All Right Reserved.
Сайт создан в системе uCoz