--
好康訊息!
Openfind 提供免費撥接電話:40508888
帳號:openfind 密碼:openfind
--
http://bbs.openfind.com.tw
※來源:61.217.*
constructor宣告成private, 在main , or functions or 其他class的member function
裡都不能"以new的方式直接建立此物件"
"but 可以呼叫此class的static function 來間接建立物件"
(此static function因為是在此class的scope裡, 所以不受private constructor
之影響)
singleton pattern就是用這樣的做法來做到控制一個singleton class只會
存在一個instance
for example :
class SingletonClass
{
public:
static SingletonClass* GetInstance()
{
if (!_instance) _instance= new SingletonClass;
return _instance;
}
private:
SingletonClass ();
static SingletonClass* _instance;
};
有了上面的private constructor後, 我們就可以避免在其它funtion裡new了此物件
而是統一透過SingletonClass的static function -->GetInstance來取得此物件,
GetInstance會先判斷是否已建立此物件,如果已經建立了, 就直接傳回先前建立
之物件, 如果尚未建立, 就先建立物件後再回傳. 如此就可達成此SingletonClass
最多只會存在一個instance的機制
--
※ Origin: 楓橋驛站<bbs.cs.nthu.edu.tw> ◆ From: 218-163-56-43.HINET-IP.hinet.net
那麼如果我在function理想要使用其他class的member function(public的)
是不是只要在function裡 多加一行
[1;32m new FunctionName; [m
這樣就可以了呢?
(p.s.呼叫FunctionName的function 是一個C function不是在constructor裡)
因為我在compile的時候 一直出現這樣的錯誤
[1;32m error C2143: syntax error : missing ';' before '.' [m
謝謝回答
--
[30;42m▄ [32;40m▄ [30;42m▃▇ [1;37;40m /\\ [33m喵嗚 ~ [37m■ ■ [m [30mby kioku [m [1;37m ■ ■ ■ ■ [;m
[42;30m▃ [33;43m [30;42m ▄ [32;40m▄ [1;37m ( ") [33m小毛肚子餓 ~ [37m■ █▔◥ ◣ ◢ ◢█◣ ■ ■ ■ [;m
[33m ▌ [30;42m▆ [1;37;40m ~( ) [36m<)#< [;m■ ■ ■ █ █▔█ ◢◤ 風信小毛 ■ ■
[31m▂ [m [31;43m�[m [31md▅▇███▇▇▆▃▁ [1;30m■ ■ ■ █▁◢‧█ █‧◢█◣ cm2.twbbs.org [;m
[1;35m※ Origin: [;m [1;36m風信小毛《 cm2.twbbs.org 》 [33m◎ From: [31m aludra.usc.edu [;m