[語法] 關於製做一個new的選單

看板C_and_CPP (C/C++)作者 (楊伯)時間16年前 (2010/03/15 20:35), 編輯推噓1(102)
留言3則, 3人參與, 最新討論串1/2 (看更多)
假如現在有一個父類別 A 同時被多個子類別所繼承,如A_a, A_b, A_c等.... 接著我想要讓A* 依照傳進來的引數不同new成不同的子類別。 大概像下面這個樣子 Class A { enum Type { a,b,c }; }; Class A_a : public A {}; Class A_b : public A {}; void Create( A::Type i_eType ) { switch( i_eType ) { case a : A* = new A_a(); break; case b : A* = new A_b(); break; } } 我想到的方法就像上面一樣,用switch去做類似選單的功能,可是 如果今天擁有的子類別很多的話感覺做起來不是很好,想請問板上 前輩有沒有這類的手法可以分享給小弟學習。 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 122.117.128.56

03/15 22:01, , 1F
Design Pattern的factory method?
03/15 22:01, 1F

03/15 22:05, , 2F
在C++似乎無法省掉switch..case這段?
03/15 22:05, 2F

03/15 22:23, , 3F
同意樓上
03/15 22:23, 3F
文章代碼(AID): #1BdYccyd (C_and_CPP)
文章代碼(AID): #1BdYccyd (C_and_CPP)