我的游戏类(class)由一艘 spaceship 组成。
我将 spaceship 的对象设为私有(private),并为此对象做了一个 setter/getter 。

Spaceship Game::getSpaceShip() const
{
    return mySpaceship;
}

当我通过主体中的 setter/getter 使用宇宙飞船对象时,它无法正常工作。如果我公开发布它并以它的名字使用它,它将起作用。您知道什么可能导致此问题吗?

最佳答案

您正在返回mySpaceship副本。尝试返回指向mySpaceship对象的指针。

Spaceship *Game::getSpaceShip()
{
    return &mySpaceship;
}

或引用:
const Spaceship& Game::getSpaceShip() const
{
    return mySpaceship;
}

不是Java。在C++中,您正在按值传递和返回变量!除非您指出要进行其他操作(通过指针或引用)。

以及是否需要修改返回的引用。
Spaceship& Game::getSpaceShip()
{
    return mySpaceship;
}

关于c++ - 做一个对象的 setter/getter ?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/15604127/

10-11 20:37