运算符的重载 operator

一、运算符的重载

       运算符重载,就是对已有的运算符重新进行定义,赋予其另一种功能,以适应不同的数据类型

       在复杂数据类型中,编译器不能识别运算符,如c++中,对象+对象,编译器无法知道怎么运算,所以就需要编写函数,实现相应功能。

不能重载的 运算符五个: ?:        .               .*       ::       szieof

运算符的重载 operator

二 自增运算符重载的实现 a++ ++a;

1. 类中的++操作符号重载之后必须保证其语意与全局++相同。

2.为了区分前后,用++()表示前自增,用++(int)后自增。(规定)

3.因为按照前自增的标准定义,应该支持"++++a"的语法,而且两次前自增都应该是对a对象的自身操作,如果返回A类型,那第二次前自增调用的是临时对象的前自增操作。


4.后自增应该返回"const Complex".这可以防止形如"a++++"的用法。

5.一般通过前自增操作来实现后自增操作符函数

运算符的重载 operator

运算符的重载 operator

三、this指针

this 这是指代本对象
this本来是个指针,*this的星号是取指针指向的内容,
所以,*this是整个对象,而this是指向本对象的指针

四、运算符的重载函数

运算符的重载 operator

运算符的重载 operator

异或、与等 操作符的重载

运算符的重载 operator

五、一般像类中的数据成员含有指针,就需要写拷贝构造函数,和赋值语句(杜绝浅拷贝、浅赋值)

运算符的重载 operator

运算符的重载 operator