要防止C++單例類被拷貝,可以通過禁用拷貝構造函數和賦值操作符來實現。具體方法如下:
class Singleton {
private:
Singleton(const Singleton&);
Singleton& operator=(const Singleton&);
public:
static Singleton& getInstance() {
static Singleton instance;
return instance;
}
// 其他成員函數
void doSomething() {}
};
class Singleton {
public:
static Singleton& getInstance() {
static Singleton instance;
return instance;
}
// 其他成員函數
void doSomething() {}
private:
Singleton() {}
Singleton(const Singleton&) = delete;
Singleton& operator=(const Singleton&) = delete;
};
通過以上方法,可以有效地防止C++單例類被拷貝,確保只有一個實例存在并且可以通過getInstance()方法獲取該實例。