问题:
我有一节课,比方说,mainClass
。现在我创建了另外两个类,让它们从基类继承。
因此,我想管理任何基类或继承类的所有实例,并将它们存储在例如向量中(如果它不起作用,则不必是向量)。
std::vector<mainClass*>
确实接受了所有继承类的实例,但是我不能访问那些在继承类中声明的新函数,只有那些同时也是基类成员的函数。
有没有办法,也许有模板,来解决这个问题?或者我忽略了一些简单的事情?
答案 0 :(得分:0)
继承的目的是允许通过基类调用派生类的方法。为此,基类将方法定义为virtual
。
如果您在基类中将需要在派生类中调用的所有方法定义为virtual
,则可以通过mainClass*
调用它们。
如果你不这样做,你必须知道哪个实体属于哪个类,并且根据其进行投射。