|
Указатели только для чтения Предположим, вы хотите сделать так, чтобы некоторый объект никогда не обновлялся (или, по крайней мере, не обновлялся обычными клиентами). Эта задача легко решается с помощью ведущих указателей - достаточно сделать операторную функцию operator->() константной функцией класса. template <class Type> class ROMP { private: Type* t; public: ROMP(); // Создает указываемый объект ROMP(const ROMP<Type>&); // Копирует указываемый объект ~ROMP(); // Удаляет указываемый объект ROMP<Type>& operator=(const ROMP<Type>&); const Type* operator->() const; }; Указываемый объект заперт так надежно, что до него не доберется даже ЦРУ. В принципе, то же самое можно было сделать с помощью более простых умных указателей, но ведущие указатели обеспечивают стопроцентную защиту, так как клиент никогда не получает прямого доступа к указываемому объекту. |
Copyright 2005. Климов Александр. All Right Reserved.