的我有一个类作为基类, 和B类,C从A 派生类和有类d谁具有数据成员类型A(组合物)的(指针阵列)数组对象和继承
enter code here
class D{
A **a;
int size;
.......
a = new A*[size];
......
};
和我有Print方法,在它的body中我必须具有给定ID(B和C都有数据成员ID)的特定元素(如果它来自类B或C),应该有2个选项可以打印功能......用于B类的打印元素,还是用于C类的打印元素? 我如何具体的元素?
我做了A级抽象!
enter code here
class A{
.......
virtual void print()=0;
};
class B :public A{
........
........
void print(){
.......}
};
类C:公共A { ........ ........ 空隙打印(){ .......} };
class D{
........
.......
void Print()
int P;
cout<<" if you want to print class B elements enter 1 , or 2 for class C"<<endl;
cin>>P;
if(P==1){
dynamic_cast<B*>(*a)->print(); }
else
if (P== 2){
dynamic_cast<C*>(*a)->print(); }
我在这里的问题是我如何具体的元素,如果它从类B或C ???
是什么,你的类ID是什么意思? –
你应该真的避免数组的原始分配。改为使用'std :: vector'。 – Sean
@ richard.g它是B类和C类的数据成员,我应该从用户那里收到它,然后指定它(从B类或C类)? –