我的游戏类(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/