首页 > 解决方案 > 如何根据向量中的对象更改属性?

问题描述

情况是这样的:一个以统计为变量的 Player 类。从 Player 派生的 Keeper 类。

Action 类 从 Action 派生的 Run 类

播放器类有 vector<Action*>

我不明白如何实现以下功能:遍历向量并根据操作更新 Player 或 Keeper 中的正确属性(numberOfRunKm 和 numberOfSaves)

class Action {
public:
    Action();
    virtual ~Action();
    virtual void write();
};

class Run: public Action {
    double runKm;
public:
    Run(double runKm);
    ~Run();
    double getRunKm() const;
    void setRunKm(double runKm);
    void write();
};

class Save: public Action  {
public:
    Save();
    ~Save();
    void write();
};

class Player {
    string name;
    vector<Action*> actions;
    double numberOfRunKm = 0.0;
public:
    Player(const string &name);
    ~Player();
    virtual void write();
    void run();
    void addAction(Action* action);
    void updateStatistics();
};

class Keeper: public Player {
    int numberOfSaves = 0;
public:
    Keeper(const string &name);
    ~Keeper();
    void write();
    void save();
};

标签: c++

解决方案


推荐阅读