【发布时间】:2021-12-31 14:27:36
【问题描述】:
我有这个类的层次结构:
B1 B2
\ /
C
我应该如何在 C++ 中创建一个指针数组,我可以在其中存储所有类的对象? 这是我尝试过但不起作用的方法:
#include <iostream>
using namespace std;
class MyClass {
public:
void myFunction() {
cout << "Some content in parent class." ;
}
};
class MyOtherClass {
public:
void myOtherFunction() {
cout << "Some content in another class." ;
}
};
class MyChildClass: public MyClass, public MyOtherClass {
};
int main() {
MyChildClass **v=new MyChildClass*[3];
v[1]=new MyClass();
v[2]=new MyOtherClass();
v[1]->myFunction();
return 0;
}
【问题讨论】:
-
你的问题不太清楚,请阅读stackoverflow.com/help/how-to-ask
-
您的观点是什么,它可以帮助我们了解您想要做什么
-
不小心做了
v[1]=new MyClass(); v[1]->myOtherFunction();,你想怎么办? -
不可能将指向多个类型的指针存储在同一个数组中,除非它们都有一个共同的 base 类。拥有一个通用的派生类并没有帮助。