的其他孩子,我有一个指针的对象从父列表的最佳方式转换成同一母公司
vector<Parent*> list;
那么我父母的2个类:Child1和CHILD2添加到列表中。
该代码遍历列表的所有实体并调用Execute();
for(int i = 0; i < list.size(); i++)
list[i]->Execute();
Execute()是Parent的一个虚函数,并且在每个子类中以不同的方式实现。我希望在Child1 :: Execute()的函数内部创建一个条件,其中它被列表中的相同位置处的实体Child2取代。
当然我不能这样做:
void Child1::Execute() {
...
if(condition)
this = new Child2();
}
,但我不能想出一个好的解决方案,做到这一点。最后会有几百个来自Parent的Other Child类,它们会做相同的事情,但在其他情况下,所以我想要一个好的可扩展解决方案。
感谢
难道你也许发布您的代码的全样本..即使它不编译。你很难准确理解你在问什么。你还可能谈论派生类而不是子类? – silvergasp
感谢您的回复。从我的理解和根据[这个wikibook](https://en.wikibooks.org/wiki/C%2B%2B_Programming/Classes/Inheritance),一个孩子班**是一个从另一个班派生出来的班级。 – gunarthon