在 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;
}
我正在尝试将一个 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;
}