我现在正在做一个项目,我对如何处理这个问题感到困惑。
class Unit: public Entity {
string Name;
int HP;
int MP;
int Agi;
int Spr;
int Def;
int Atk;
int Lvl;
int Exp;
std::vector<int> states;
string unitType;
public:
int GetHP() {return HP};
int GetMP() {return MP};
int GetAgi() {return Agi};
int GetSpr() {return Spr};
int GetDef() {return Def};
int GetAtk() {return Atk};
int GetLvl() {return Lvl};
int GetExp() {return Exp};
std::vector<int>& GetStates() {return &states};
string GetUnitType() {return unitType};
virtual void SetHP(int newValue);
virtual void SetMP(int newValue);
virtual void SetAgi(int newValue);
virtual void SetSpr(int newValue);
virtual void SetDef(int newValue);
virtual void SetAtk(int newValue);
virtual void SetLvl(int newValue);
virtual void SetExp(int newValue);
我需要返回对“std::vector states”的引用,以便可以遍历它并查找值。我相信我应该使用 Set 因为我只有一个值并且不能重复,但我会保存它以备后用。“std::vector& GetStates() {return &states}”是否正确?应该将其更改为“std::vector& const GetStates() {return &states}”还是我完全关闭了?我在这里看到了与此类似的帖子,但它没有具体回答我的问题,因为他们没有以与此相同的借口使用它。