設計乙個不能被複製的類

2021-08-26 17:27:48 字數 519 閱讀 1255

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

class nocopy

private :

nocopy(const nocopy & copy){}

nocopy & operator = (const nocopy & copy){}

};int main()

lab623c@lab623c-desktop:~/lemon$ g++ nocopy.cpp -o nocopy

nocopy.cpp: in function 'int main()':

nocopy.cpp:7:

error: 'nocopy& nocopy::operator=(const nocopy&)' is private

nocopy.cpp:14: error: within this context

因此類nocopy是不能被複製的

設計乙個不能被繼承的類

分類 cpp 2012 02 19 20 33 1390人閱讀收藏 舉報destructor constructor function class 編譯器c 在c 中每個類都乙個建構函式和乙個析構函式,即使使用者不明確定義,系統也會類定義乙個預設的建構函式和析構函式。當建立該類的物件可以顯示或者隱式...

C 實現不可被複製的類

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

C 設計乙個類不能偷懶的地方

1 建構函式 預設建構函式 關於怎樣去初始化乙個物件的問題,也就是乙個新的資料型別怎樣去填充它的內容,需要考慮是否需要是explicit還是implicit強調,一般建議explicit來強調,因為存在隱式型別轉換總是讓人不太放心。需要考慮的細節很多,有預設引數的值設計,資料成員初始化列表等等。例項...