c++ - 如何根据向量中的对象更改属性?
问题描述
情况是这样的:一个以统计为变量的 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();
};
解决方案
推荐阅读
- html - 移除两个 flexbox 项目之间的空间
- arrays - 为什么我的 C 程序中不断出现“fgets”函数错误,我该如何解决?
- spring-boot - Spring boot Authentication Failure Handler - 自定义,没有额外的 url 或查询参数
- ssl - 每个端点与代理不同的 CA 证书
- python - 在 Ubuntu 20.04 上使用“pyttsx3”时遇到问题
- android - Android - 全屏而不移动内容
- swift - Swift 中的接触检测
- angular - 在 Ionic 中从谷歌加载图像返回错误 403
- python - Numpy 随机选择,每个元素的重复时间有限
- powershell - 从 CLI 启动窗口的终端并传入可执行命令以运行