问题描述:定义boat和Car两个类,二者都有weight属性,定义二者的一个友元函数getTotalWeight( ),计算二者对象的重量和
#include <iostream>
using namespace std;
class cat;
class boat{
private:
double weight;
public:
boat(double x){weight=x;}
void getTotalWeight(const cat &x);//注意一下里面的参数是类类型的!!!!
};
class cat{
private:
double weight;
public:
cat(double x){weight=x;}
friend void boat::getTotalWeight(const cat &x);
};
void boat::getTotalWeight(const cat &x) //因为class boat的 getTotalWeight()函数使用了cat的成员,所以必须在使用之前知道cat的定义细节。
{
cout<<weight+x.weight<<endl;//这里体现出友元的特点,可以直接访问private的成员!!!!!
} //注意这里的友元函数需要放在最后的这样的一个位置
int main()
{
boat b(10);
cat c(25);
b.getTotalWeight(c);
return 0;
}
细节所要注意的问题全部在代码中注释出来了。