我有一个 A 类,其中删除了复制赋值运算符。我应该如何交换 A 的两个实例?
我尝试使用std::swap
,但没有奏效。
class A {
private:
int a;
public:
A& operator=(const A& other) = delete;
A(int _a = 0):a(_a){}
void showA() { std::cout << a << std::endl; }
};
int main()
{
A obj1(10);
A obj2(20);
obj1.showA();
obj2.showA();
//A temp;
//temp = obj1;
//obj1 = obj2;
//obj2 = temp;
obj1.showA();
obj2.showA();
}
我期待obj1
并被obj2
交换。最初obj1.a
is10
和obj2.a
is 20
,我希望在完成obj1.a
后成为20
并且obj2.a
将会成为10
。