class foo { public: foo(); explicit foo(CTBint i_size); foo(const foo& rhs); foo(foo& rhs, bool b_grab); ~foo(); void Grab(foo& rhs); ... all other stuff ... void ToStream(ostream& os = cout) const; void Dump(int i_indent=0, ostream& os=cout, const char* p_text=0) const; T& operator[](CTBint i_ind); const T& operator[](CTBint i_ind) const; bool operator!() const; operator T*(); operator const T*() const; operator bool() const; foo& operator=(foo& rhs); foo& operator=(const T& rhs); foo& operator<<(const T& rhs); foo& operator>>(T& rhs); private: void ChangeCapacity(CTBint i_cap); private: CTBint mi_nuse; }; operator+= operator-= operator==