摘要:1.运算符重载
2.赋值运算符‘=’重载
3.可变长数组类的实现
4.流插入/提取运算符的重载
5.重载类型转换运算符
6.自增,自减运算符的重载
7.运算符重载注意事项
1.运算符重载
在C++中,直接将±用于复数对象是不允许的
含义:对已有的运算符(C++中预定义的)赋予多重的含义,使同一运算符作用于不同类型的数据时导致不同类型的行为
目的:扩展C++中提供的运算符的适用范围,使之能作用于对象
实质:函数重载(可重载为普通函数,也可为成员函数)
把含运算符的表达式转换成对运算符函数的调用
运算符被多次重载时,根据实参类型决定调用哪个运算符函数
形式:返回值类型 operator 运算符(形参表)
{
……
}
重载为普通(全局)函数时,参数个数为运算符目数
(参加运算的运算数的个数)
重载为成员函数时,参数个数为运算符目数减一
例:operator+是普通函数(两个参数),operator-是成员函数(一个参数)
c=a+b;//等价于c=operator+(a,b)
c=a-b;//等价于c=a.operator-(b)
假设operator+是成员函数,c=c+5相当于c=c.operator+(5),但c=5+c会编译出错,怎么办呢