即时通讯工作在基于文本的RPG游戏中,但是当我将值设置为X变量时,当我再次访问该属性时,它处于默认值,我做错了什么?没有价值的类属性
class Game
{
private:
bool podeAndar;
bool estaBatalhando;
Jogador _jogador;
Mapa _mapa;
public:
Game() { }
Game(Jogador _j){
_jogador = Jogador(_j.getNome());
_mapa.LoadMapa();
podeAndar = true;
estaBatalhando = false;
}
~Game(void)
{
}
Jogador getJogador() {
return _jogador;
}
void setJogador(Jogador v) {
_jogador = v;
}
}
我的“玩家”类
#pragma once
#include "Criatura.h"
#include <string>
class Jogador :
public Criatura
{
private:
int _cap;
public:
Jogador(std::string nome)
{
setNome(nome);
setCap(150);
}
Jogador() { }
~Jogador(void)
{
}
int getCap(){
return _cap;
}
void setCap(int v){
_cap = v;
}
}
他们我的“主” - 当我设置的值,当我跟随它在调试器,它正确地设定值,但是当我访问game.getJogador()。getCap()再次,它的缺省值是150
int _tmain(int argc, _TCHAR* argv[])
{
Jogador _player = Jogador("Kyore");
Game game = Game(_player);
while(true){
std::cout << game.getJogador().getCap(); //print 150
game.getJogador().setCap(100); //set cap to 100
std::cout << game.getJogador().getCap(); //print 150 again
break;
}
}
谢谢,它工作完美。为了学习的目的,没有const方法它不会工作?为什么?当我使用.getJogador()时,我们会调用其中一个?返回地址或常量的那个?再次感谢。 – Kyore 2014-10-27 14:46:31
对不起,我无法立即回复您的评论。现在编辑答案 - 检查它是否提供了一些更多信息,以便您可以弄清楚自己。 – elimad 2014-10-30 05:20:22