我试图在一个名为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
我相信我再次对指针产生了误解,所以如果有人能指出(哈!)我朝着正确的方向发展,我会很感激.
错误是因为this*无效 - *是中缀(乘法)或前缀(取消引用指针).
您可能想要&setEqual == this- 即从同一内存地址的对象分配或setEqual==*this- 使用operator==您定义的任何内容比较相等性
| 归档时间: |
|
| 查看次数: |
884 次 |
| 最近记录: |