即時通訊工作在基於文本的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