锘??xml version="1.0" encoding="utf-8" standalone="yes"?>
鍏跺疄C++璇劇殑姝e紡鍚嶇О鏄?#8220;闈㈠悜瀵硅薄紼嬪簭璁捐鍩虹”銆傛垜鎬鐤戠収榪欑鏁欐硶錛屽鐢熶滑鏄惁鐭ラ亾搴旇濡備綍浣跨敤緇ф壙銆備竴涓鎺堥潰鍚戝璞″熀紜鐨勮灞呯劧鍑鴻繖縐嶉鐩紝瀹炲湪闅句互鎺ュ彈銆?br>
class A{
protected:
T id;
};
template<class T>
class B: public A<T>{
public:
void setid(T i){
id=i;
}
void test1(){
cout<<"B::test1() ID: "<<id<<endl;
}
};
闅鵑亾灝辮繖涔堝垢榪愬湴紕頒笂GCC鐨凚ug浜嗭紵
private:
Singleton(){
// more code
}
static Singleton *thisInstance;
// more code
public:
static Singleton *getInstance();
// more code
};
Singleton *Singleton::thisInstance=NULL;
Singleton *Singleton::getInstance(){
if (thisInstance==NULL)
thisInstance=new Singleton();
return thisInstance;
}
濡傛涓鏉ワ紝瑕佸彇寰桽ingleton鐨勫疄渚嬶紝鍙兘鐢╣etInstance鍑芥暟銆俫etInstance鍑芥暟蹇呴』鏄潤鎬侊紙Static錛夌殑錛岃繖鏍鋒墠鑳藉湪榪樻病鏈夊疄渚嬬殑鏃跺欎嬌鐢ㄨ繖涓嚱鏁般傝実etInstance鍙堟槸Singleton綾婚噷鐨勫嚱鏁幫紝褰撶劧鏄彲浠ュ湪鍏朵腑浣跨敤new鏉ョ敓鎴愬璞′簡銆傛墍浠ヨ铏界劧灝嗙被鐨勬瀯閫犲嚱鏁扮鏈夊寲浜嗭紝浣嗘瀯閫犲嚱鏁版湰韜繕鏄湁鎰忎箟鐨勶紝瀹冧細鍦ㄦ瀯寤虹涓涓紝涔熸槸鍞竴涓涓疄渚嬬殑鏃跺欐墽琛屻傚悓鏃訛紝淇濊瘉浜嗕笉浼氬嚭鐜板浜庝竴涓殑瀹炰緥銆?br>