下面是個單例模式的例子。
1. 類中有乙個static的類指標
2. 有乙個static的類成員函式,返回該static指標。 static的成員函式只能訪問static的成員變數。
3. 該static指標的初始化,是單獨列出來的,且在進入main函式前執行
4. 還有乙個奇怪的地方,singleton的建構函式是private的,為什麼可以new singleton()?
#include
using namespace std;
//singleton c++
class singleton
;singleton::singleton()
void singleton::setvar(int var)
//main
int main(int argc, char* argv)
{cout << "starting main" << endl;
singleton *ton1 = singleton::getinstance();
singleton *ton2 = singleton::getinstance();
cout<<"ton1 var = "cout<<"ton2 var = "singleton constructor
starting main
ton1 var = 20
ton2 var = 150
可以看出,建構函式在進入main之前執行了。
改變了ton1->var,ton2->var變了。說明是乙個物件。
C 單例模式
include using namespace std 單例類的c 實現 class singleton 構造方法實現 singleton singleton void singleton setvar int var main int main int argc,char argv return ...
C 單例模式
實現方式一 include template typename t class singleton boost noncopyable static void init private static pthread once t ponce statict value template typena...
C 單例模式
效率有點低,但是還算安全的單例模式,靜態成員實現方式 class singleton public static singleton getinstance singleton singleton getinstance unlock return m instance 內部靜態例項的懶漢模式,c ...