【发布时间】:2016-12-13 22:00:03
【问题描述】:
如果给定一个函数operator=,我如何检查两个内存地址是否相同?我相信以下是正确的,但它使用 == 运算符而不是定义的运算符。我将如何使用 = 运算符来做到这一点?
if(&this == &rhs)
return true;
【问题讨论】:
-
operator=是 赋值 运算符,而不是比较。 -
if(&this == &rhs)您可能想使用if(this == &rhs),但您的问题范围太窄了。 -
“我将如何使用 = 运算符来做到这一点?” 嗯?你想达到什么目的?
-
operator=的一个常见实现是在分配成员之前测试对象是否相等。这通常由if (this != &other)执行。
标签: c++ operators memory-address