在C++中,可以使用以下步驟來應用單例模式:
以下是一個簡單的單例模式的示例代碼:
class Singleton {
private:
static Singleton* instance; // 靜態成員,保存單例對象的實例
Singleton() {} // 私有構造函數
public:
static Singleton* getInstance() {
if (instance == nullptr) {
instance = new Singleton();
}
return instance;
}
// 禁止拷貝構造函數和賦值運算符函數
Singleton(const Singleton&) = delete;
Singleton& operator=(const Singleton&) = delete;
};
Singleton* Singleton::instance = nullptr; // 對靜態成員進行初始化
int main() {
Singleton* singleton1 = Singleton::getInstance();
Singleton* singleton2 = Singleton::getInstance();
if (singleton1 == singleton2) {
cout << "兩個對象是同一個實例" << endl;
}
else {
cout << "兩個對象不是同一個實例" << endl;
}
return 0;
}
在上述代碼中,通過調用Singleton::getInstance()
方法獲取Singleton
類的單例對象實例,并比較兩個指針是否相等,用于判斷是否為同一個實例。