Вы не можете присвоить this
, но вы все равно можете поменять местами объект, представленный this
, с локальным объектом, созданным в A::Transform()
:
#include <iostream>
class A
{
public:
A(int n = 1) : i(n) {}
void Transform(int j)
{
A obj(j); // create a new object A
std::swap(*this, obj);
}
private:
int i;
};