如何建立不可複製的單例項類?

2021-10-07 23:48:15 字數 1484 閱讀 6250

目錄

如何建立不可複製的單例項類?

建立不可複製的類

建立僅有唯一物件的類

將可以複製的方式全部宣告出來,避免系統實用預設成員函式進行複製。

複製的方式主要有:通過過載運算子進行複製,通過拷貝建構函式進行複製,通過轉移建構函式進行複製。

以下為**示例:

#include using namespace std;  

class cstudent  

;      cstudent& operator= (const cstudent &) {};  

cstudent(cstudent &&) {};  

public:  

// 建構函式與析構函式不可一世private型別的,否則開始建立物件後的初始化與刪除物件之前的收尾工作誰來做  

cstudent()   

cstudent(string president, float mark)  

~cstudent()   

};  

int main()  

建立不可複製的類,說白了就是對所有可能複製的方式做私有化宣告,無論你定不定義都無所謂,只要這些方式被定義為私有那外界呼叫他們就是非法,系統就會報錯。

當把成員變數宣告為static型別時,該變數的等級將與類的等級相同,即這個變數可以在類體定義的所有物件內共享,並且用static型別的專屬成員函式進行處理,重點是static型別的變數只進行一次初始化!

當把成員函式宣告為static型別時,這個成員函式的等級將於類等同,而且這個變數只能處理static型別的成員變數,此外,它還可以在類體定義的所有例項物件中共享。

#include using namespace std;  

#include class cstudent  

;      cstudent(cstudent &&) {};  

cstudent(string leader, float mark) ;  

cstudent()   

cstudent& operator= (const cstudent &) {};  

/* operator=相當於個函式,呼叫物件為cstudent物件的引用,這樣的話可以實時改變物件的值,而且const型別的cstudent型別的引用也保證了引數傳遞的效率與在函式體內不小心改變的失誤,兼顧效率與安全 */  

public:  

~cstudent() {};  

static cstudent& getcstudentobject()   

void init(string leader, float mark)  

void output()  

};  

int main()  

建立只有乙個物件的類,說白了就是從建構函式上下手,即從物件定義的源頭進行限制。

如何建立MongoDB單節點例項

操作步驟 登入mongodb管理控制台。在左側導航欄,單擊副本集例項列表。在副本集例項列表頁面,單擊新建例項。選擇副本集 包年包月 或副本集 按量付費 選擇例項配置,引數說明如下表所示。單擊立即購買,進入訂單確認頁面。在確認訂單頁面,閱讀並勾選雲資料庫mongodb版服務協議,根據提示完成支付流程。...

不可複製類的原理和實現

主要原理在 三 四兩條 一.拷貝建構函式與賦值操作符 class a a a a b1 a 拷貝建構函式的例項 a b2 a 賦值操作符的例項 二.拷貝建構函式的應用例項 1.同一型別的物件顯示或隱式初始化乙個物件,如下 class a a a a b a 2.作為函式的實參,如下 void wor...

C 實現不可被複製的類

c 語言程式設計中,類的拷貝主要是通過拷貝建構函式和賦值函式來進行,再者就是為拷貝專門實現的成員方法。由於拷貝建構函式和賦值函式在使用者為提供的情況下是由c 編譯器自動生成的,而且是public成員,因此預設的c 類都有拷貝功能。乙個預設的c 類所擁有的成員函式 class empty 空類empt...