3.15.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); }
...
}