【问题描述】声明boat与car两个类,两者都有weight属性,定义二者的一个友元函数totalweight(),计算二者的重量和。类的信息按需要自行定义。 【输入形式】在主程序中输入一个boat对象以及一个car对象的重量 【输出形式】输出两个对象的重量和 【样例输入1】4 5 【样例输出1】9 【样例输入2】5.5 5.5 【样例输出2】11 【评分标准】请一定使用友元函数,掌握相关知识点 c++
时间: 2023-12-02 08:04:14 浏览: 51
以下是对应的C++代码实现:
```cpp
#include<iostream>
using namespace std;
class car; // 前向声明,声明car类,以便在boat类中使用
class boat{
public:
friend float totalweight(boat b, car c); // 友元函数声明
boat(float w){
weight = w;
}
private:
float weight;
};
class car{
public:
friend float totalweight(boat b, car c); // 友元函数声明
car(float w){
weight = w;
}
private:
float weight;
};
float totalweight(boat b, car c){ // 友元函数定义
return b.weight + c.weight;
}
int main(){
float w1, w2;
cin >> w1 >> w2;
boat b(w1);
car c(w2);
cout << totalweight(b, c) << endl;
return 0;
}
```
该程序中,我们定义了boat类和car类,两者都有weight属性。我们在两个类中分别声明了totalweight函数为友元函数,使得该函数可以访问到两个类的私有成员变量。在main函数中,读入两个对象的重量,创建对应的boat和car对象,并调用totalweight函数计算二者重量和,最终输出结果。