【发布时间】:2024-01-23 13:30:01
【问题描述】:
如何从基类的数组中调用派生函数?
例如:
#include <iostream>
#include <string>
class a{
public:
virtual void prnt(){
std::cout<<"a"<<std::endl;
}
};
class b: public a{
public:
virtual void prnt(){
std::cout<<"B"<<std::endl;
}
};
int main()
{
a array[3];
array[0] = a();
array[1] = b();
array[2] = a();
array[1].prnt();
}
这个例子的输出是a。
有没有办法解决这个问题?
【问题讨论】:
-
有没有办法解决这个问题。如何解决?
-
b不是此代码的可能输出。你是说a吗? -
是的。 A是我的意思。抱歉,来晚了。
-
不能,因为它是基类的数组,也就是说里面的对象是基类的,不是派生类的,所以不能在上面调用派生类函数,因为它不是派生类。
标签: c++ arrays virtual derived