lvalue — ошибка при использовании этого в переполнении стека

class Tower
{
int index;//index of the tower;
nodeStack<int> t;
int size;//number of disks in the tower;

public:
Tower(int in);
void moveTopTo(Tower&);
void move(int size,Tower& dest,Tower& buffer);

};

void Tower::move(int n,Tower& dest,Tower& buffer)
{
if(n>0)
{
move(n-1,buffer,dest);
moveTopTo(dest);
move(n-1,dest,this);
}
}

в этой строке: move (n-1, dest, this);

из-за ошибки говорится, что начальное значение ссылки на неконстантное должно быть lvalue;

0

Решение

Вы должны разыменовать ваш this указатель, так что вы можете использовать его в качестве ссылки:

move(n-1, dest, *this);
2

Другие решения

Других решений пока нет …