定义Boat与Car两个类,二者都有weight属性,定义二者的一个友元函数getTotalWeight(),计算两者的重量和。用c++
时间: 2024-10-21 18:15:11 浏览: 25
C++之友元:友元函数和友元类详解
5星 · 资源好评率100%
在C++中,你可以定义`Boat`和`Car`两个类,它们都包含一个公共的数据成员`weight`表示各自的重量。为了共享一个友元函数来计算总重量,你需要将`getTotalWeight`声明为这两个类的友元函数。以下是简单的实现:
```cpp
#include <iostream>
class Boat {
public:
double weight;
Boat(double w) : weight(w) {}
friend double getTotalWeight(Boat b);
};
class Car {
public:
double weight;
Car(double w) : weight(w) {}
friend double getTotalWeight(Car c);
};
// 友元函数定义
double getTotalWeight(Boat b) { return b.weight; }
double getTotalWeight(Car c) { return c.weight; }
int main() {
Boat boat(1000.0); // 创建一艘船
Car car(1500.0); // 创建一辆车
double total = getTotalWeight(boat) + getTotalWeight(car);
std::cout << "The total weight of the boat and the car is: " << total << " kg.\n";
return 0;
}
```
在这个例子中,`getTotalWeight`函数作为友元函数可以访问并直接操作`Boat`和`Car`类的对象的`weight`属性,实现了计算两者总重量的功能。
阅读全文