C++ 在c+;中使用赋值运算符重载时出错+;将一个类对象的数据复制到另一个类对象
我试图将一个类对象的值复制到另一个类对象,但赋值运算符重载方法不起作用C++ 在c+;中使用赋值运算符重载时出错+;将一个类对象的数据复制到另一个类对象,c++,operator-overloading,assignment-operator,C++,Operator Overloading,Assignment Operator,我试图将一个类对象的值复制到另一个类对象,但赋值运算符重载方法不起作用 class rectangle { int length,breadth; public: rectangle(int l,int b) { length=l; breadth=b; } rectangle operator =(square s) //This line is giving me error. { breadth=
class rectangle
{
int length,breadth;
public:
rectangle(int l,int b)
{
length=l;
breadth=b;
}
rectangle operator =(square s) //This line is giving me error.
{
breadth=length=s.seee();
cout<<"length"<<length;
}
int see() const
{
return length;
}
};
class square
{
int side;
public:
square()
{
side=5;
}
square operator =(rectangle r)
{
side=r.see();
cout<<side;
}
int seee() const
{
return side;
}
};
类矩形
{
整数长度、宽度;
公众:
矩形(整数l,整数b)
{
长度=l;
宽度=b;
}
矩形运算符=(正方形s)//这行给了我一个错误。
{
宽度=长度=s.见();
cout在定义了square
之后,您需要执行成员函数。还要注意,赋值操作符将返回对被赋值对象的引用,this
,并且操作的右侧(在本例中为square
)通常被视为常量&
,以避免不必要的复制
class rectangle
{
//...
rectangle& operator=(const square&);
//...
};
class square
{
//...
};
rectangle& rectangle::operator=(const square& s)
{
breadth=length=s.seee();
return *this;
}
在定义了square
之后,您需要执行成员函数的实现。还要注意的是,赋值操作符需要返回对被赋值对象的引用,this
,并且操作的右侧(在本例中为square
)通常被视为常量&
,以避免不必要的复制
class rectangle
{
//...
rectangle& operator=(const square&);
//...
};
class square
{
//...
};
rectangle& rectangle::operator=(const square& s)
{
breadth=length=s.seee();
return *this;
}