Вы не можете назначить указатель на указатель this
, потому что это prvalue .
this
указатель является постоянным указателем, который содержит адрес памятитекущего объекта.В результате, this
имеет тип const Test*
в вашем случае, поэтому его нельзя назначить.Выполнение этого (если это было разрешено) фактически позволило бы объекту изменять свой собственный адрес в памяти, как упоминал @Peter.
Примечание: const Test*
- указатель на постоянный объект.Объект, на который он указывает, является постоянным, а не сам указатель.
PS: this->x = t->x;
- это, вероятно, то, что вы хотели сказать.