2.定义Boat与Car两个类,都含有重量weight属性,定义一个外部函数totalweight()为两者的友元函数,计算两者的重量和。 要求: (1)totalweight()函数访问Boat与Car两个类的私有成员; (2)注意友元的函数定义和使用。
时间: 2023-12-30 07:06:52 浏览: 31
好的,根据你的要求,我来给你写一个 `Boat` 和 `Car` 类,并且定义一个外部函数 `totalweight()` 作为它们的友元函数,计算它们两者的重量和。
```cpp
#include <iostream>
using namespace std;
class Car; // 前向声明
class Boat {
public:
Boat(int w) : weight(w) {}
friend int totalweight(Boat& b, Car& c); // 友元函数
private:
int weight;
};
class Car {
public:
Car(int w) : weight(w) {}
friend int totalweight(Boat& b, Car& c); // 友元函数
private:
int weight;
};
int totalweight(Boat& b, Car& c) {
return b.weight + c.weight; // 计算两者重量和
}
int main() {
Boat b(100);
Car c(500);
cout << "Total Weight: " << totalweight(b, c) << endl; // 输出总重量
return 0;
}
```
在这个例子中,我们定义了 `Boat` 和 `Car` 两个类,并且都有一个私有属性 `weight`。我们还定义了一个外部函数 `totalweight()`,作为它们的友元函数,用于计算两者的重量和。
在 `totalweight()` 函数中,我们可以访问 `Boat` 和 `Car` 两个类的私有成员,因为它们是 `totalweight()` 函数的友元函数。我们通过传递 `Boat` 和 `Car` 两个对象的引用,来计算它们的重量和。
在 `main()` 函数中,我们创建了一个 `Boat` 对象和一个 `Car` 对象,并且调用了 `totalweight()` 函数,输出了它们的总重量。
希望这个例子能够帮助你理解 C++ 中的友元函数和访问私有成员的方法。如果你有任何其他问题,可以随时问我。