C++ 有没有一种方法可以调用C+中基类函数的所有子类+;?
我的应用程序中有很多场景都包含相同的函数,比如Update()Render()Initialise()。我刚才所做的是声明所有场景并单独调用所有函数。有没有一种方法可以使这些场景从基类派生,我可以在基类上调用Update(),而基类将调用从该类派生的所有更新函数C++ 有没有一种方法可以调用C+中基类函数的所有子类+;?,c++,performance,C++,Performance,我的应用程序中有很多场景都包含相同的函数,比如Update()Render()Initialise()。我刚才所做的是声明所有场景并单独调用所有函数。有没有一种方法可以使这些场景从基类派生,我可以在基类上调用Update(),而基类将调用从该类派生的所有更新函数 干杯。将子对象推到容器中,这样派生的成员函数就可以像这样集体调用: class base { public: virtual void Update() = 0; }; class A: public base { public:
干杯。将子对象推到容器中,这样派生的成员函数就可以像这样集体调用:
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
}
}
类基{
public:virtual void Update()=0;
};
A类:公共基地{
public:void Update(){}
};
B类:公共基地{
public:void Update(){}
};
int main()
{
向量组;
组。向后推_(使_唯一(A());
组。向后推_(使_唯一(B());
对于(自动和电气:组){
e、 get()->Update();//更新所有对象
}
}
你应该给出你真正想要的代码示例。另请参见:。您最好在代码审阅时使用代码示例询问此问题。不是堆栈溢出。我在“不清楚你在问什么”和“太宽”之间犹豫是否要结束投票。你可以制作一个场景图,并在更新方法中为每个孩子调用更新函数。据我所知,这种方法非常流行,并在cocos2dx引擎中使用。注意:这不是对您原始问题的回答,因为您没有明确场景之间的关系。请就代码写几句话。没有解释的代码不太有用。