计算不同对象的重量-运算符重载

设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;
}
原文地址:https://www.cnblogs.com/hzshisan/p/12571116.html