【发布时间】:2017-10-20 12:26:33
【问题描述】:
我想添加两个对象。当我在运算符重载中传递两个参数时,它会给我一个错误,即必须有零个或一个参数。我想知道为什么我不能将两个对象作为参数传递来添加它们。
class Rectangle
{
private:
int L;
int B;
public:
Rectangle() //default constructor
{
L = 2;
B = 2;
}
Rectangle(int l,int b) //parametrized constructor
{
L = l;
B = b;
}
Rectangle operator+ (Rectangle obj1,Rectangle obj2) //operator overloading
{
Rectangle obj3
obj3.L = obj1.L + obj2.L;
obj3.B = obj1.B + obj2.B;
return obj3
}
void Display()
{
cout<< "length is " << L <<endl;
cout<< "breadth is " << B <<endl;
}
};
int main()
{
Rectangle R1;
R1.Display();
Rectangle R2(5,3);
R2.Display();
//Rectangle R3;
//R3 = R1 + R2;
//R3.Display();
return 0;
}
【问题讨论】:
-
如果是成员函数,则对象本身会有一个自动额外的参数(
*this)。 -
在构造函数中使用初始化列表
-
并阅读有关 const 引用的信息。对操作员更好,并节省复制
-
通过this,您将获得有关运算符重载的所有基本知识
标签: c++