Re: [問題] template一問

看板C_and_CPP作者 (CA)時間14年前 (2011/06/18 10:32), 編輯推噓1(101)
留言2則, 2人參與, 最新討論串3/9 (看更多)
※ 引述《NIKE74731 (做遊戲的心)》之銘言: : class Base : { : public: virtual void Run() = 0; : }; : Base* Get( int iType ) : { : switch( iType ) : { : case 1: : return new D1; : break; : case 2: : return new D2; : break; : case 3: : return new D3; : break; : } : } class Factory { public: typedef std::function< Base *() > Creator; static Base * Create( int id ); static bool Register( int id, Creator c ); private: static std::map< int, Creator > f_; }; Base * Factory::Create( int id ) { std::map< int, Creator >::const_iterator it = f_.find( id ); if( it == f_.end() ) { return NULL; } return it->second(); } bool Register( int id, Creator c ) { if( f_.find( id ) != f_.end() ) { return false; } f_.insert( std::make_pair( id, c ) ); return true; } // register Factory::Register( 1, []() { return new D1; } ); Factory::Register( 2, []() { return new D2; } ); Factory::Register( 3, []() { return new D3; } ); // create instance int i; std::cin >> i; Base * obj = Factory::Create( i ); 很陽春的 factory pattern -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 175.96.119.92

06/18 21:46, , 1F
有一股懷念的感覺....
06/18 21:46, 1F

06/19 13:15, , 2F
囧rz 連語法都看不懂....(逃XD)
06/19 13:15, 2F
文章代碼(AID): #1D_7x1Fv (C_and_CPP)
討論串 (同標題文章)
本文引述了以下文章的的內容:
問題
0
18
以下文章回應了本文
問題
1
4
完整討論串 (本文為第 3 之 9 篇):
問題
2
3
問題
5
34
問題
3
16
問題
3
7
問題
1
4
問題
1
2
問題
1
5
問題
0
18
文章代碼(AID): #1D_7x1Fv (C_and_CPP)