pamler

常用链接

统计

最新评论

C++操作符重载

重载操作符具有返回类型和形参表,如下语句

Sales_item operater+(const Sales_item&const Sales_item&);

声明了加号操作符,可用于将两个Sales_item对象“相加”并获得一个Sales_item对象的副本
通过连接其他合法符号可以创建新的操作符。例如,定义一个operator**以提供求幂运算是合法的

用于内置类型的操作符,其含义不能改变。例如,内置的整型加号操作符不能重定义
//error: cannot redefine built-in operator for ints
int operator+(intint);

优先级和结合性固定,且不再具备短路求值特性,例如,在&&和||的重载版本中,两个操作数都要进行求值,而且对操作数的求值顺序不做规定。因此,重载&&和||不是一种很好的做法。

注意对称的操作符,例如算术操作符,相等操作符,关系操作符和位操作符

赋值(=)、下标([ ])、调用(( ))、和成员访问箭头(—>)等操作符必须定义为成员,将这些操作符定义为非成员函数将在编译时标记为错误,而一般将算术和关系操作符定义为非成员函数。

赋值必须返回对*this的引用

posted on 2010-12-10 20:11 pamler 阅读(196) 评论(0)  编辑 收藏 引用