【发布时间】:2016-01-07 15:25:43
【问题描述】:
我正在尝试解决以下问题:
假设我正在编写一个类,它有一个方法 myMethod,它同时修改了 *this 和传递的参数:
class MyClass {
//some code here
void myMethod(MyClass& other) {
//modify *this and other
}
};
问题是我希望该方法在调用以下部分时什么都不做:
MyClass x;
x.myMethod(x);
检查相等性是不够的,因为我希望能够为两个相同的对象调用它。
以更实际的方式,例如,假设MyClass 类似于std::set 和myMethod 合并两个集合,清空other。两个相同的集合可以合并,但我显然不能同时清空和填充一个集合。
我该如何检查呢?任何建议将不胜感激。
【问题讨论】: