CSmth & CSmth::operator = (const CSmth & rhs)
{
return *this;
}
答案 0 :(得分:2)
这是一个赋值运算符,所以你可以写:
CSmth a;
CSmth b;
a = b;
除了返回对第一个附录的引用之外,实际的实现没有任何用处。更标准的实现是:
CSmth & CSmth::operator = (const CSmth & rhs) {
if (this != &rhs) // protect against invalid self-assignment
{
do_whatever_required_to_copy_rsh_on_to_this;
}
return *this;
}
答案 1 :(得分:1)
它是一个赋值运算符,用于将rhs
对象的值赋给当前(this
)。但是,它尚未实施。
答案 2 :(得分:0)
operator =是'Copy Assignent Operator'。任何时候你看到
A a, b;
a = b;
最简单的情况是:
A & A::operator=(A const &rhs);
a.operator=(b);
要解决这个问题:
*this
。此返回很重要,因为它允许您链接分配,如:A a, b, c, d; a = b = c= d;
对operator =的调用应该将右侧对象的状态“复制”到左侧对象中。因为看起来我们正在进行分配,所以这称为“复制分配操作员”
**将变量表示为'private'会使该变量对该类私有,而不是该对象。您可以从复制赋值运算符中完全访问传递对象的私有实现,但这不是一个好主意,因为它违反了对象封装等等。