算术操作符和关系操作符定义为非成员,赋值定义为成员(引用进引用出)
--------------------------------------------------------
类定义下标操作符时,一般需要定义两个版本:一个为非const成员并返回引用,另一个为const成员并返回const引用 一般定义为成员
int &operator[](const size_t& t)
{
return m_vndata[t];
}
const int &operator[](const size_t & t) const
{
return m_vndata[t];
}
--------------------------------------------------------
->必须定义为类成员函数 *不一定要,但是定义为类成员一般也是正确的,这两个也应该有const和非const版本,且他们都是单目运算符哦!!!
Screen &operator*() {return *ptr->sp;}
Screen *operator->(){return ptr->sp;}
const Screen &operator*() {return *ptr->sp;}
const Screen *operator->(){return ptr->sp;}
---------------------------------------------------
自增自减
CheckedPtr& operator++();前 ++prefix
CheckedPtr& operator++(int);后 ++ postfix
------------------------------------------------------