c++ - 有没有办法在 C++ 中调用基类函数的所有子函数?
问题描述
我的应用程序中有很多场景,它们都包含相同的函数,例如 Update() Render() Initialise()。我刚才做的方式是声明所有场景并单独调用所有函数。有没有办法让这些场景派生自基类,我可以在基类上调用 Update() ,然后调用从此类派生的所有更新函数?
干杯。
解决方案
通过推送到容器来将子对象组合在一起,以便可以像这样集体调用派生的成员函数:
class base {
public: virtual void Update() = 0;
};
class A: public base {
public: void Update() {}
};
class B : public base {
public: void Update() {}
};
int main()
{
vector<unique_ptr<base>> group;
group.push_back(make_unique<base>(A()));
group.push_back(make_unique<base>(B()));
for (auto& e : group) {
e.get()->Update(); // update all the objects
}
}
推荐阅读
- excel - Excel 中对 Sharepoint 上其他工作簿的单元格引用/公式不会更新值
- c++ - 如何在 C++ 中创建我自己的循环版本?
- javascript - 将 Firebase Cloud Function TypeScript 语法转换为 JavaScript
- python - BeautifulSoup 请求失败
- c++ - 我是否需要为仅传递给模板化函数的类声明 __declspec(dllexport)?
- reactjs - 在没有服务器的情况下使用 ReactJS
- python - 通过私钥使用 Python 进行 SSH
- excel - Excel 数据验证在特定单元格上失败,并且每次保存时都会损坏文件
- javascript - 我无法从 this.state 获取数据
- python - Python + SQLite3 - 嵌套 For 循环