【发布时间】:2015-05-30 14:59:32
【问题描述】:
我是新来的,希望你能帮助我! :)
我的问题如下:
首先,我有这个类图:
此外,我还有另一个类Rocket,它有一个vector,它应该包含所有火箭部件作为我生成的指针。
我的问题是Rocket类包含3种计算方法,例如:
template<typename T>
double Rocket<T>::calcTWR(){
double thrust = 0;
for (int i = 0; i < m_parts.size();i++){
thrust += m_parts[i]->getThrust();
}
return thrust;
}
是的,我使用了模板,因为我不完全确定如何处理所有这些子类,并且我认为模板可能适合这里。另外,这就是问题出现的地方,调用rocket.calcTWR(); 似乎无法处理它:编译器说
getThrust() 不是“RocketPart”的成员
我明白了,但是如何解决呢?如何在Rocket 中声明一个能够包含RocketPart 的所有子类的向量,在main 中如何调用calcTWR(),以便它实际上返回总thrust,而不管vector的内容?
请保持简单,我还是个初学者! ;)
【问题讨论】:
标签: c++ templates vector subclass multiple-inheritance