的我有一個類作爲基類, 和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類)? –