目录
1. 运算符重载
C++的运算符只能用于基本的数据类型,运算符重载目的是对抽象数据类型也可以使用基本数据类型。
返回值类型 operator 运算符 (形参表)
{
...
}
1.1 运算符重载为普通函数
1.2 运算符重载为成员函数
成员函数需要作用在对象上,同样实现两个数相加,只需传递一个参数就可以,传递运算符后面那一个。
2. 赋值运算符=
的重载
1)可以直接使用赋值运算符=
完成两个对象的赋值。
2)但是当赋值运算符两边的类型不匹配,比如int
类型赋值给Complex
类型,在这种情况下,就需要重载赋值运算符=
。
3)赋值运算符=
只能重载为成员函数,不能重载为普通函数。
看下面这样的例子
1.3 浅复制与深复制
浅复制:逐个字节的复制工作
深复制:将指针变量指向的内容复制给另一个对象中指针成员对象指向的内容
为了实现上面的效果,需要设计一个新的operator=
,具体实现程序如下:
1.4 返回值的讨论
3. 动态可变长度数组
4. 流插入运算符的重载
1)cout
是在头文件iostream
中定义的ostream
类的对象。
2)左运算符<<
能用在cout
上是因为,在iostream
里面对<<`进行了重载。
具体怎么实现呢?