在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來強調,因為存在隱式型別轉換總是讓人不太放心。需要考慮的細節很多,有預設引數的值設計,資料成員初始化列表等等。例項...