c++份文件定义Boat与Car两个类,二者都有weight属性, 定义二者的一个友元函数int totalWeight(Car& c,Boat& b); 为外部函数,计算二者的重量和
时间: 2024-09-20 20:02:24 浏览: 39
在 C++ 中,你可以通过定义一个友元函数来访问类 Boat 和 Car 的私有成员变量 weight。友元函数是一种特殊类型的函数,它可以直接操作类的对象,即使不是该类的成员函数。在这个例子中,我们创建了一个名为 `totalWeight` 的友元函数,它接受一个 Car 类型和一个 Boat 类型的引用作为参数。
```cpp
class Boat {
private:
int weight; // Boat 类的 weight 属性
public:
Boat(int w) : weight(w) {} // 构造函数
// 其他 Boat 类的方法...
};
class Car {
private:
int weight; // Car 类的 weight 属性
public:
Car(int w) : weight(w) {} // 构造函数
// 其他 Car 类的方法...
friend int totalWeight(Car& c, Boat& b);
};
// 友元函数声明
int totalWeight(Car& c, Boat& b); // 定义外部的 totalWeight 函数
// 实现 totalWeight 函数
int totalWeight(Car& c, Boat& b) {
return c.weight + b.weight; // 计算并返回两者的总重量
}
int main() {
Boat boat(1000);
Car car(2000);
int combinedWeight = totalWeight(car, boat);
cout << "Total weight of the car and boat is: " << combinedWeight << endl;
return 0;
}
```
在这个例子中,`totalWeight` 函数可以计算传入的 Car 和 Boat 对象的重量之和,因为它是它们的友元。在主函数 `main()` 中,你可以直接调用这个函数来得到结果。
阅读全文