作者FATCLOUD (A Cloud)
看板EE_DSnP
标题Re: [问题] 小小技巧问题
时间Sun May 31 21:38:08 2009
目前我对这件事采用的做法是
存一个 map<string,CirGate*>
把不同的字串 map 到不同 [[[种类]]] 的 pointer
然後再叫那个 pointer->creatGate(...)
这样子继承之後就视 pointer 种类会到各个不同种类继承後的函数
并且替每一类的 gate 都设一个 static creatGate(..)
(这样就不用制造物件?)
但是我还没有 compile 不知道会不会对
而且我存在 map 里的各类 pointer 都 = 0
感觉这个动作很多余
这样表达不知道看不看得懂
如果沟通有障碍我再重新整理一次叙述 QQ
总而言之 key word 就三点
1.把这个 map 建构好 (GirGate* 的值不重要,只是存进去的种类可能是 CirOrGate)
map<string,CirGate*> S;
2.每种 Gate 都继承一个 static creatGate(....)
virtual static CirXXXGate* creatGate(string n,vector<CirGate> fin){}
{return new CirXXXGate(n,fin);}
3.执行时这样做 (依照种类指到不同的 function?)
string gateType,gateName;
vector<CirGate*> fanin;
S[gateType]->creatGate(gateName, fanin)
有没有甚麽建议? QQ
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 140.112.218.75
1F:→ FATCLOUD:自己感觉是很差的做法 做了不必要的事 05/31 21:41
2F:推 ric2k1:(comment on functional pointer) 其实 functional pointer 05/31 21:56
3F:→ ric2k1:是 C style 的作法, 我觉得在 C++ 可以完全用 functional 05/31 21:57
4F:→ ric2k1:object 来取代, 也许你会觉得宣告一个 clas & object 有点 05/31 21:58
5F:→ ric2k1:多余, 但是它却提供了较佳的扩充性. 05/31 21:58