大家好,我有一个逻辑问题......我不得不做一个有点像迷宫的问题并且它有效但后来我试图用类来做......所以在这里。
我在 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;
}
当它像这样时,角色移动没有任何问题 现在,当我尝试 implimenet 类时,它不会
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++;
}
关于c++ - 类返回值错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14083046/