在 C++ 中使用赋值运算符重载将 class 对象的数据复制到另一个 class 对象时出错

Error while using Assignment operator overloading in c++ to copy data of a class object to another class object

我正在尝试将一个 class 对象的值复制到另一个 class 对象,但是赋值运算符重载方法不起作用。

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

错误= 's' 类型不完整。 我该如何解决这个错误?请帮忙!

定义完成后需要实现成员函数square。另请注意,赋值运算符应 return 对被赋值对象的引用 this,并且操作的右侧(在本例中为 square)是通常作为 const& 以避免不必要的复制。

class rectangle
{
//...
    rectangle& operator=(const square&);
//...
};

class square
{
//...
};

rectangle& rectangle::operator=(const square& s)
{
    breadth=length=s.seee();
    return *this;
}