2.1.2.9.2. Proxy Var Class Example
class AnInterface_var : public _var {
protected:
AnInterface_ptr ptr;
public:
AnInterface_var () { ptr = AnInterface::_nil (); }
AnInterface_var (AnInterface_ptr p) { ptr = p; }
...
~AnInterface_var () {
release (ptr);
}
AnInterface_var &operator = (AnInterface_ptr p) {
release (ptr);
ptr = p;
return (*this);
}
AnInterface_var &operator = (const AnInterface_var &var) {
if (this != &var) {
release (ptr);
ptr = AnInterface::_duplicate (AnInterface_ptr (var));
}
return (*this);
}
operator AnInterface_ptr & () { return (ptr); }
AnInterface _ptr operator -> () const { return (ptr); }
...
}