C 實現不可被複製的類

2021-07-14 03:12:52 字數 841 閱讀 9499

c++語言程式設計中,類的拷貝主要是通過拷貝建構函式和賦值函式來進行,再者就是為拷貝專門實現的成員方法。

由於拷貝建構函式和賦值函式在使用者為提供的情況下是由c++編譯器自動生成的,而且是public成員,因此預設的c++類都有拷貝功能。

乙個預設的c++類所擁有的成員函式:

class

empty

{}; //空類empty

empty(); //預設建構函式

empty(const

empty &);//預設拷貝構造

~empty(); //預設析構函式

empty & operator=(const

empty &)//預設賦值運算子

empty *operator&();//取位址運算子

const

empty *operator &() const; //取位址運算子const

程式設計師有時候需要給檔案加上許可權,讓這些機密檔案不能被隨意拷貝,這時候就需要用c++實現不可被拷貝的類。

若讓乙個c++類不能被拷貝,可顯式地宣告類的拷貝建構函式和賦值函式為私有函式,從而達到該類不可被拷貝的目的。

下面簡單地提供乙個基類,任何需要提供不可被拷貝功能的c++類只需從此類派生即可。

noncopyable類示例:

//通過私有化拷貝建構函式和賦值函式而達到物件不可被拷貝的目的

//任何需提供不能被拷貝功能的類可以直接從noncopyable派生即可

class noncopyable

;

C 不可被拷貝類的實現

在c 中,類的拷貝主要是通過拷貝建構函式和賦值函式,還有就是為拷貝專門實現的成員方法。拷貝建構函式和賦值函式在使用者沒有提供的情況下是由c 編譯器自動生成的,是public成員,因此預設的c 類都有拷貝功能。若讓乙個c 類不能被拷貝,可顯式地宣告類的拷貝建構函式和賦值函式為私有函式,從而達到該類不可...

不可複製類的原理和實現

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

設計乙個不能被複製的類

在c 中如果要求乙個類能被複製需要實現賦值運算子或者複製建構函式,因此要想乙個類不能被複雜,只需將這兩個函式設定private訪問屬性即可class nocopy private nocopy const nocopy copy nocopy operator const nocopy copy i...