C++重载操作符

2014-11-24 09:38:57 · 作者: · 浏览: 0

重载操作符

原型:返回类型 operator操作符(形参);

注意事项:

(1)不能通过连接其他合法符号来创建任何新的操作符,如下是错误的:

sales_item operator**(const sales_item &org); //error 不能通过连接其他合法操作符来创建任何新的操作符	
(2)重载操作符必须一个具有类类型,类成员的话因为有一个默认的本类this,所以也满足

	//sales_item operator+(const int a, const int b); //error 必须至少提供一个类类型
	//sales_item operator+( const int b ); // ok 默认this为类类型
注意:用于内置类型的操作符含义不能变,也不能为任何内置类型定义额外的新的操作符(如数组),如下

int operator+(int, int); //error
(3)优先级和结合性是固定的,如下

x==y+z

y、z先使用重载操作符+,然后将计算的结果与x 作为形参调用重载操作符==

(4)不再具备短路求值

重载操作符的设计

(1)不要重载具有内置含义的操作符

(2)大多数操作符对类对象没有意义

(3)复合赋值操作符

(4)相等和关系操作符

(5)成员和非成员的实现

。。。