1.赋值运算符(=)
形式:T &operator=(const T another);
注意:判断是否自我赋值,有指针成员时,注意判断是否为空。
2.流插入(>>),流提取(<<)
形式:friend istream &operator>>(istream &is,T &a);
friend ostream &operator<<(ostream &os,T &a);
注意:只能重载为非成员函数。
3.类型转换
形式:operator T2()
4.小括号
待补充
5.中括号
形式:Telem &operator[](int i)
(Telem为元素类型)
举例:二维数组类,访问数组元素:
template<typename T>
class Array2 {
T **data;
...
T *operator[](int i) {
return data[i];
}
};
注意:只能重载为成员函数