设boat类和car类都有数据成员weight,要求重载运算符+来计算二者的重量和。
#include"iostream"
using namespace std;
class boat;//在这里一定要先声明一下
class car;//否则下面引入友元函数时他识别不了
class boat
{
public:
int weight;
boat(int a)
{
this->weight=a;
}
void show()
{cout<<"boat重"<<weight<<endl;}
friend int operator +(boat &b1,car &c1);
};
class car
{
public:
int weight;
car(int a)
{
this->weight=a;
}
void show()
{cout<<"car重"<<weight<<endl;}
friend int operator +(boat &b1,car &c1);
};
int operator +(boat &b1,car &c1)
{
return b1.weight+c1.weight;
}
int main()
{
boat b(4);
car c(5);
b.show();
c.show();
cout<<"总重"<<b+c<<endl;//这里就不必在重载操作符了 因为b+c已经被定义为int型了
return 0;
}