c++ - 类返回值错误

标签 c++ class object

大家好,我有一个逻辑问题......我不得不做一个有点像迷宫的问题并且它有效但后来我试图用类来做......所以在这里。

我在 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/

相关文章:

c++ - 在多个 cpp 文件上使用类/结构/union C++

python - 为什么不能为非 float 定义 `round`?

javascript - 设计 ES6 : appropriate way to identify group of classes

javascript - 从javascript中的JSON子数组中检索数据,其中标识符以整数开头

javascript - javascript面向对象编程中super()构造函数和子类方法的执行顺序是什么?

c++ - undefined reference ,带有std::experimental::可选,尽管存在符号

c++ - 为什么只允许一个隐式转换将参数解析为 C++ 中的函数?

c++ - 解引用会导致崩溃,即使对于非NULL指针也是如此,为什么?

c++ - MSXML 内存泄漏

javascript - 对 ES6 对象语法感到困惑