[問題] virtual function的問題
假設
class A{
public:
virtual bool test() =0;
};
class B:public A{
xxxxx;
public:
bool test(){...};
};
class C:public A{
xxxx;
public:
bool test(){...};
}
int main(){
B b;
A *a = &b;
a->test();
return 0;
}
我想大家都知道這會執行在B裡面的test()
但是 有沒有辦法說不經過創造一個B's object 來存放
還是說這是必經之路
那如果這樣的話
如果我今天是要造一個放一堆亂七八糟的東西
int main(){
A *a[10];
B b[10];
C c[10];
int input,ai=0,bi=0,ci=0;
while(cin >> input){
if(input){
b[bi] = B(...);
a[ai] = &b[bi];
++bi;
++ai;
}else{
c[ci] = C(...);
a[ai] = &c[ci];
++ci;
++ai;
}
}
for(int i=0; i<ai; ++i){
a[i]->test();
}
return 0;
}
這樣看起來很蠢(這我自己寫的)
我為了多形多弄那麼長的一條路 (我自己感覺拉)
請想問 有沒有什麼更加簡潔的做法呢?
或者是更好 更清楚的圖像?
--
Every thing can be wrong unless you can proof it is true.
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 114.42.113.171
※ 編輯: ckaha 來自: 114.42.113.171 (09/27 15:55)
推
09/27 15:59, , 1F
09/27 15:59, 1F
推
09/27 16:09, , 2F
09/27 16:09, 2F
推
09/27 16:11, , 3F
09/27 16:11, 3F
→
09/27 16:19, , 4F
09/27 16:19, 4F
→
09/27 16:21, , 5F
09/27 16:21, 5F
→
09/27 21:16, , 6F
09/27 21:16, 6F
討論串 (同標題文章)
以下文章回應了本文:
完整討論串 (本文為第 1 之 2 篇):
C_and_CPP 近期熱門文章
PTT數位生活區 即時熱門文章