大家好,我有一个逻辑上的问题...我不得不做一个迷宫迷宫,它可以工作,但后来我试图用类来做...所以就在这里。
我在main之外有一个函数叫做void playeraction();
cout<<"\nAction : ";
cin>>action;
int prevX=posX;
int prevY=posY;
unsigned char space = {32};
switch (action)
{
case 'a':
if(grid[posX][posY-1]!='#')
{
posY--;
grid[prevX][prevY]=space;
system("cls");
break;
}
当角色像这样移动时,没有任何问题
现在,当我尝试隐含学习类时,它不会
case 's':
if(grid[posX+1][posY]!='#')
{
Dragon obj;
obj.moveSouth(posX);
grid[prevX][prevY]=space;
system("cls");
break;
}
在龙cpp
int Dragon::moveSouth(int posX)
{
return posX++;
}
任何想法,为什么它不返回
posX++
? 最佳答案
在您的代码中,有一些错误。
首先,对于“posX ++”,使用其值后增加posX。您应使用++ posX使其增加,然后再使用。
其次,在函数中,其参数的内存在堆栈中。它们是临时的,不是变量的原始存储。
您可以将此代码用作参考。
void Dragon::moveSouth(int & posX){
posX++;
}