写出成员函数和友元函数实现出来的代码
时间: 2024-03-06 11:49:02 浏览: 60
Exe7_0友元_C++友元函数编程(两种有友元方式)_cloudzfv_
好的,以下是利用成员函数和友元函数实现重载加号运算符的示例代码```cpp
#include <iostream>
using namespace std;
class A {
int num;
public:
A(int n) : num(n) {}
// 成员函数实现重载加号运算符
A operator+(const A& a) const {
return A(num + a.num);
}
int getNum() const {
return num;
}
friend A operator+(int n, const A& a); // 友元函数声明
};
// 友元函数实现重载加号运算符
A operator+(int n, const A& a) {
return A(n + a.num);
}
int main() {
A a1(1), a2(2), a3(0);
a3 = a1 + a2; // 使用成员函数重载加号运算符
cout << "a1 + a2 = " << a3.getNum() << endl;
a3 = 3 + a1; // 使用友元函数重载加号运算符
cout << "3 + a1 = " << a3.getNum() << endl;
return 0;
}
```
在上面的代码中,我们定义了一个类 A,其中包含一个整型成员变量 num。为了实现重载加号运算符,我们在类 A 内部定义了一个成员函数 operator+,以及一个友元函数 operator+。成员函数 operator+ 接受一个 A 类型的参数,返回一个 A 类型的对象,实现了 A 对象与另一个 A 对象相加的功能。而友元函数 operator+ 接受一个整型参数和一个 A 类型的参数,返回一个 A 类型的对象,实现了整型常量与 A 对象相加的功能。在 main 函数中,我们分别使用成员函数和友元函数重载加号运算符,输出了相应的结果。
阅读全文