C++重载

重载(Overload)是C++面向对象编程中的一个常见特性,可以定义多个同名函数或方法,通过参数列表区分,来实现多态。

一、函数重载

函数重载指函数名相同,但参数不同的多个函数:

void print(int x) {
  // 打印整型
}

void print(double x) {
  // 打印浮点型  
}

调用时会根据实参自动选择匹配的函数。

二、操作符重载

C++也支持重载运算符,自定义该运算符对类对象的作用方式:

class Complex {
public:
  Complex operator+(const Complex& other) {
    // 实现复数加法
  }
};

Complex c1, c2, c3;
c3 = c1 + c2; // 调用运算符重载

三、常见重载运算符

C++常见的可重载运算符有+ – * / % ! = < > ++ –等。

四、重载方式

运算符重载可以以全局函数或者成员函数实现。

五、重载原则

重载函数应保持与内置运算符一致的行为。

六、重载区分

参数类型、个数和顺序不同可以区分重载。

总结来说,重载是C++面向对象编程中非常常见和重要的一个特性,可以让代码易读和易用。但也需要避免滥用重载带来的复杂度。