c++ - 从另一个函数设置类变量的值

标签 c++ class oop

<分区>

我正在开发一个简单的街机风格太空射击游戏,但我的 player 类遇到了一些问题。

这是代码:

#include<iostream>

class player {
    public:
        int xPos, yPos;
        void setPlayerPos(int x, int y);
        int getX();
        int getY();
};

void player::setPlayerPos(int x, int y) {
    xPos = x;
    yPos = y;
    return;
}
int player::getX() {
    return xPos;
}
int player::getY() {
    return yPos;
}
void onGameStart() {
    player Player;
    Player.setPlayerPos(3,10);
}

void main() {
    onGameStart();
    while (gameIsRunning) {
        onGameDraw();
    }
}

当然,一切都是从代码底部的main()开始的。它运行一个简单的 onGameStart() 函数,该函数应该设置玩家的起始坐标。

事情是这样的。当我在初始化这些变量时设置 xPosyPos 的值时,Player.getX()Player.getY() 将始终返回正确的值。但是,当使用 Player.setPlayerPos(x,y) 设置它们时,Player.getX()Player.getY() 返回垃圾. (或原始初始化值,如果已设置)。

我想知道我做错了什么以及为什么 Player.setPlayerPos(x,y) 不更新 xPosyPos.

最佳答案

尝试像这样在 main 中使用变量:

class player {
    public:
        int xPos, yPos;
        void setPlayerPos(int x, int y);
        int getX();
        int getY();
};

void player::setPlayerPos(int x, int y) {
    xPos = x;
    yPos = y;
    return;
}
int player::getX() {
    return xPos;
}
int player::getY() {
    return yPos;
}
void onGameStart(player & Player) {
    Player.setPlayerPos(3,10);
}

int main() {
    player Player;
    onGameStart(Player);
    while (gameIsRunning) {
        onGameDraw(Player); // Need to know more about the implementation but it should be similiar to onGameStart.
    }
}

关于c++ - 从另一个函数设置类变量的值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48052345/

相关文章:

javascript - 从 Javascript 类中的静态方法引用成员函数的正确方法

c++ - 类之间的信息丢失

c# - 如果覆盖它,是否要求子类调用 super.doSomething()?

c++ - 我怎样才能对自定义类进行枚举?

C++ unsigned int 到 double 转换

C++多维数组多种数据类型

c++ - std::make_unique 可以与抽象接口(interface)一起使用吗?

java - 添加新元素时应该使用克隆吗?什么时候应该使用克隆?

没有属性样板的 Python 类

c - C 中的面向对象程序 - 列表