0
我想在類之外使用運算符重載。我在文檔中讀到,當我們在類的外部使用它時,我們可以給出兩個對象作爲參數。當我使用作用域解析運算符在類外部定義它時,它會給我一個錯誤。我想知道原因爲什麼範圍解析運算符在課堂外給出錯誤?
class Rectangle
{
public:
int L;
int B;
Rectangle() //default constructor
{
L = 2;
B = 2;
}
Rectangle(int l,int b) //parametrized constructor
{
L = l;
B = b;
}
void Display()
{
cout<< "length is " << L <<endl;
cout<< "breadth is " << B <<endl;
}
};
Rectangle Rectangle:: operator+ (Rectangle obj1,Rectangle obj2)
{
Rectangle obj3;
obj3.L = obj1.L + obj2.L;
obj3.B = obj1.B + obj2.B;
return obj3;
}
int main()
{
Rectangle R1;
R1.Display();
Rectangle R2(5,3);
R2.Display();
Rectangle R3 ;
R3 = R1+ R2;
R3.Display();
return 0;
}
二進制運算符,你可以聲明爲一個成員函數有一個參數或作爲「免費功能」與兩個。 –