Материалы книги получены с http://www.itlibitum.ru/
Указатели только для чтения
Предположим, вы хотите сделать так, чтобы некоторый объект никогда не обновлялся (или, по крайней мере, не обновлялся обычными клиентами). Эта задача легко решается с помощью ведущих указателей - достаточно сделать операторную функцию 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;
};
Указываемый объект заперт так надежно, что до него не доберется даже ЦРУ. В принципе, то же самое можно было сделать с помощью более простых умных указателей, но ведущие указатели обеспечивают стопроцентную защиту, так как клиент никогда не получает прямого доступа к указываемому объекту.
Назад Содержание Далее
|