重载函数定义:
在同一个类中,可以声明几个功能类似的同名函数,但是这些同名函数的形式参数(参数的个数、类型或者顺序)不同。
例:number函数的重载
void number(int a) {
cout << "整数: " << a;
}
void print(double a) {
cout << "浮点数: " << a;
}
重载运算符定义:
重载的运算符是带有特殊名称的函数,函数名是由关键字 operator 和其后要重载的运算符符号构成的。与其他函数一样,重载运算符有一个返回类型和一个参数列表。
格式:
类名 operator 重载的符号(参数列表)
例:+运算符的重载
class Number
{
Number operator+(Number& A){}
}
例:重载“+”运算符,使两个对象相加出新的对象,并输出相应参数。
class Number {
private:
int a, b, c;
public:
void numberX(int, int, int);//用来给类对象私有变量赋值的函数
void print();//输出信息的函数
Number operator+(Number& A) //重载+运算符 令用于两个Number类对象相加
{
Number number;
number.a = this->a + A.a;//this->a是Number类里的变量a,A.a是
number.b = this->b + A.b;
number.c = this->c + A.c;
return number;
}
};
void Number::numberX(int a, int b, int c)
{
this->a = a;
this->b = b;
this->c = c;
}
void Number::print()
{
cout << " a:"<<this->a<<" b:" << this->b << " c:" << this->c<<"\n";
}
int main()
{
Number number1;//创建3个对象
Number number2;
Number number3;
number1.numberX(1, 2, 3);
number1.print();
number2.numberX(4, 5, 6);
number2.print();
number3 = number1 + number2;//将两个对象相加(调用重载+运算函数)
number3.print();
}
输出结果:
补充:
可以重载的运算符(图来源于菜鸟教程)
不可重载的运算符(图片来源于菜鸟教程)