У меня есть класс 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
равно 10
, а obj2.a
равно 20
, я ожидаю, что obj1.a
будет 20
и obj2.a
будет 10
после завершения.