其他问题的答案说这是如何为派生类编写赋值:
class D : public B
{
public:
D& operator=(const D& other)
{
B::operator=(other);
// D-specific stuff
return *this;
}
};
但是不应该完成通常的“检查自我分配”吗?例如:
class D : public B
{
public:
D& operator=(const D& other)
{
if ( this != &other ) {
B::operator=(other);
// D-specific stuff
}
return *this;
}
};
或者也许应该将基类分配排除在检查之外?