C++中的可视化深度复制问题



所以我有一个类Rectangle,它带有一个重载运算符=,定义如下:

Rectangle& Rectangle::operator=(Rectangle &rhs)
{
if (this != &rhs)
{
m_x = rhs.m_x;
m_y = rhs.m_y;
m_width = rhs.m_width;
m_height = rhs.m_height;
m_intersection = rhs.m_intersection;
}
return *this;
}

到目前为止,编译器没有抱怨。但当我试图做一个作业时,我的编译器抱怨道:

m_boundingBox = Rectangle(x, y, width, height);

现在我尽量避免调用new,因此任务是这样的。我假设我需要为这种赋值实现一个单独的复制构造函数,但我不知道签名应该是什么样子。

以下是编译器错误:错误(激活(E0349无操作员"="匹配这些操作数

首先,我想解决以上问题。但第二,如果你能为这只困惑的代码编写猿揭示整个主题,那将是令人惊讶的。教人钓鱼。

您的问题是没有声明参数const。应该是这样的:

Rectangle& Rectangle::operator=(const Rectangle &rhs)

相关内容

  • 没有找到相关文章

最新更新