重载就是对在同一作用域中的某个函数和运算符指定多个定义
1.函数重载
函数名相同,形参不同
一般将功能类似但要求传入形参不同的函数写成重载函数
//三个同名函数,形参不同
//当调用print函数时,会根据传入的参数类型辨别调用哪个函数
void prinf(int x){
cout <<"整数为 " <<x <<endl ;
}
void prinf(double x){
cout <<"浮点数为 " <<x <<endl ;
}
void prinf(char x){
cout <<"字符为 " <<x <<endl ;
}
2.运算符重载
- 重载的运算符是带有特殊名称的函数,函数名是由关键字 operator 和其后要重载的运算符符号构成的。与其他函数一样,重载运算符有一个返回类型和一个参数列表。
- 重载运算符可以定义为普通的函数或类的成员函数
class Box
{
public:
double getVolume(void)
{
return length * breadth * height;
}
void setLength( double len )
{
length = len;
}
void setBreadth( double bre )
{
breadth = bre;
}
void setHeight( double hei )
{
height = hei;
}
// 重载 + 运算符,用于把两个 Box 对象相加
Box operator+(const Box& b)
{
Box box;
box.length = this->length + b.length;
box.breadth = this->breadth + b.breadth;
box.height = this->height + b.height;
return box;
}
private:
double length; // 长度
double breadth; // 宽度
double height; // 高度
};