1. 程式人生 > >計算不同物件的重量-運算子過載

計算不同物件的重量-運算子過載

設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;
}