C++中的重载运算符和重载函数是实现多态性的重要手段,可以让同一个函数名或运算符具有不同的行为。下面是使用C++重载运算符和重载函数的基本方法:
重载运算符
- 定义函数原型 重载运算符需要定义函数原型,在函数名前加上
operator关键字,后面跟着运算符符号。例如:// overload the addition operator Complex operator+(const Complex &c) const; - 实现运算符函数 在类定义外部实现运算符函数,该函数可直接访问类的私有成员变量。例如:
Complex Complex::operator+(const Complex &c) const { Complex res; res.real = real + c.real; res.imag = imag + c.imag; return res; } - 使用运算符函数 可以通过调用运算符函数来执行特定的运算操作。例如:
int main() { Complex a(2.0, 3.0); Complex b(4.0, 5.0); Complex c = a + b; cout << "Result:" << endl; cout << c.getReal() << "+" << c.getImag() << "i" << endl; return 0; }在上面的例子中,通过重载“+”运算符实现了两个复数相加。
重载函数
- 定义函数原型 重载函数需要定义函数原型,并且函数名相同,但参数列表不同。例如:
// Overloaded functions int add(int x, int y); double add(double x, double y); - 实现函数 在类定义外部实现重载函数。例如:
int add(int x, int y) { return x + y; } double add(double x, double y) { return x + y; } - 使用函数 根据传入参数的类型和个数,编译器会自动选择调用适合的函数。例如:
int main() { cout << "Addition of integers: " << add(5, 10) << endl; cout << "Addition of doubles: " << add(1.5, 2.4) << endl; return 0; }在上面的例子中,通过重载函数
add()实现了两个整数或两个浮点数相加。注意: 1.重载运算符和重载函数都要满足参数个数或参数类型不同。 2.运算符重载函数通常定义为类的成员函数,而函数重载可以是类的成员函数也可以是全局函数。 3.某些运算符(如
.和->)不能被重载。
C++中的运算符重载和函数重载实现
本文介绍了C++中通过重载运算符和函数来实现多态性的方式。重载运算符需定义函数原型,如`operator+`,并在类外实现,如复数相加。重载函数则通过相同的函数名和不同的参数列表实现,如整数和浮点数的加法。这两种方式都要求参数个数或类型不同,并且运算符重载常作为类成员,而函数重载可为成员或全局函数。
1万+





