C++重载运算符和重载函数
1.C++ 允许在同一作用域中的某个函数和运算符指定多个定义,分别称为
函数重载和运算符重载
。2.选择最合适的重载函数或重载运算符的过程,称为重载决策。
3.在同一个作用域内,可以声明几个功能类似的同名函数, 但是这些同名函数的形式参数(指参数的个数、类型或者顺序)必须不同。您不能仅通过返回类型的不同来重载函数。
4.重载的运算符是带有特殊名称的函数,函数名是由关键字
operator
和其后要重载的运算符符号构成的。
`与其他函数一样,重载运算符有一个返回类型和一个参数列表。`
重载 + 运算符,用于把两个 Box 对象相加
Box operator+(const Box& b) //其实是这样的BOX(返回类型) 对象1+对象2
{
Box box; //定义零时变量
box.length = this->length + b.length; //临时对象=对象1+对象2
box.breadth = this->breadth + b.breadth;
box.height = this->height + b.height;
return box; //返回临时对象
}
// 把两个对象相加,得到 Box3
Box3 = Box1 + Box2;
代码举例
#include <iostream>
using namespace std;
class AA
{
public:
void print(int i)
{
cout<<"整数为:"<<i<<endl;
}
void print(double f)
{
cout<<"浮点数为:"<<f<<endl;
}
void print(const char c[])
{
cout<<"字符串为:"<<c<<endl;
}
void print(int a, int b)
{
cout<<"a="<<a<<" b="<<b<<endl;
}
void print(double a ,double b)
{
cout<<"a="<<a<<" b="<<b<<endl;
}
};
int main(int argc, char const *argv[])
{
AA pd;
//函数重载,函数名相同,函数参数类型不同,或者个数不同
pd.print(5);
pd.print(23.33);
pd.print("hello");
pd.print(1,2);
pd.print(2.22,1.22);
return 0;
}
结果
PS C:\Users\newuser\Desktop\C++\第
四天C++> ./a
整数为:5
浮点数为:23.33
字符串为:hello
a=1 b=2
a=2.22 b=1.22
PS C:\Users\newuser\Desktop\C++\