比较自我指派的指针

Ros*_*tel 1 c++ pointers

我试图在一个名为Set的简单C++类上重载=运算符,该类包含一个动态的int数组.对于=运算符,我首先要检查自我赋值,所以我想比较2个指针以查看它们是否具有相同的内存地址.这是代码:

Set& Set::operator=(const Set& setEqual)
{
//first check for self assignment
if(setEqual == this*)
    cout << "this is self assignment";
}
Run Code Online (Sandbox Code Playgroud)

出错的错误是 error: expected primary-expression before ')' token

我相信我再次对指针产生了误解,所以如果有人能指出(哈!)我朝着正确的方向发展,我会很感激.

tob*_*ies 6

错误是因为this*无效 - *是中缀(乘法)或前缀(取消引用指针).

您可能想要&setEqual == this- 即从同一内存地址的对象分配或setEqual==*this- 使用operator==您定义的任何内容比较相等性