c++编写程序【问题描述】声明boat与car两个类,两者都有weight属性,定义二者的一个友元函数totalweight(),计算二者的重量和。类的信息按需要自行定义。 【输入形式】在主程序中输入一个boat对象以及一个car对象的重量 【输出形式】输出两个对象的重量和 【样例输入1】4 5 【样例输出1】9 【样例输入2】5.5 5.5 【样例输出2】11 【评分标准】请一定使用友元函数,掌握相关知识点
时间: 2023-12-01 13:04:26 浏览: 25
以下是对应的C++程序实现:
```c++
#include <iostream>
using namespace std;
class car; // 声明类car,因为在boat类中要用到
class boat {
private:
float weight;
public:
boat(float w) {
weight = w;
}
friend float totalweight(boat b, car c); // 声明友元函数
};
class car {
private:
float weight;
public:
car(float w) {
weight = w;
}
friend float totalweight(boat b, car c); // 声明友元函数
};
float totalweight(boat b, car c) {
return b.weight + c.weight; // 计算boat和car的重量和
}
int main() {
float w1, w2;
cout << "Please input the weight of a boat: ";
cin >> w1;
cout << "Please input the weight of a car: ";
cin >> w2;
boat b(w1);
car c(w2);
cout << "The total weight is " << totalweight(b, c) << endl; // 输出重量和
return 0;
}
```
程序中,我们定义了两个类 `boat` 和 `car`,它们都有一个私有成员变量 `weight` 表示重量。在类的定义中,我们声明了一个友元函数 `totalweight`,用于计算两个对象的重量和。在 `main` 函数中,我们按照要求输入了一个 `boat` 对象和一个 `car` 对象,然后调用 `totalweight` 函数计算它们的重量和,并输出结果。需要注意的是,我们在定义 `boat` 和 `car` 类时都声明了 `totalweight` 函数为友元函数,因为该函数需要访问它们的私有成员变量 `weight`。