举例说明什么是重载
时间: 2023-07-03 22:10:25 浏览: 148
重载是指在同一作用域内,可以有多个同名函数或运算符,但是它们的参数类型、参数个数或者返回值类型必须有所区别。编译器会根据函数或运算符调用时所传递的参数类型或个数来判断调用哪个函数或运算符。
举个例子,我们可以定义一个名为add的重载函数,用于计算两个数的和:
```c++
int add(int a, int b) {
return a + b;
}
double add(double a, double b) {
return a + b;
}
```
在这个例子中,我们定义了两个名为add的函数,它们的参数类型不同,一个是int型,一个是double型。这样,当我们调用add函数时,编译器会根据传递的参数类型来判断该调用哪个版本的add函数。
例如,调用add(1, 2)时会调用第一个版本的add函数,返回3;而调用add(1.5, 2.5)时会调用第二个版本的add函数,返回4.0。
除了函数重载,运算符也可以被重载。例如,我们可以重载加号运算符,使其能够对复数进行加法运算:
```c++
class Complex {
private:
double real;
double imag;
public:
Complex(double r = 0.0, double i = 0.0) : real(r), imag(i) {}
Complex operator+(const Complex& c) const {
return Complex(real + c.real, imag + c.imag);
}
};
int main() {
Complex a(1.0, 2.0);
Complex b(2.0, 3.0);
Complex c = a + b; // 调用重载的加号运算符
return 0;
}
```
在这个例子中,我们定义了一个Complex类,并重载了加号运算符,使其能够对两个Complex对象进行加法运算。在main函数中,我们创建了两个Complex对象a和b,并将它们相加得到了一个新的Complex对象c。
阅读全文