C 不可被拷貝類的實現

2022-08-21 12:06:14 字數 508 閱讀 7020

在c++中,類的拷貝主要是通過拷貝建構函式和賦值函式,還有就是為拷貝專門實現的成員方法。

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

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

下面提供乙個簡單的基類,任何從此類繼承的派生類都不可被拷貝。

1/*2

*任何繼承該類的派生類都不能進行複製和拷貝3*

4*/56

class

noncopyable

710 ~noncopyable(){}

11private

:12 noncopyable(const noncopyable &)

13const noncopyable& operator=(const noncopyable &);

14};

15

C 實現不可被複製的類

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

memcpy內容拷貝,類不行的原因

最近的工作是將乙個完整的狀態結構體給儲存下來,動態重新整理儲存沒做到,這個結構體還是比較經典的普通結構體,是可以使用memcpy進行深拷貝的。但是後來我居然想拷貝類,當然是失敗了。錯誤 double free or corruption 在memcpy類物件發生的該錯誤,實際上使用memcpy只是對...

C 函式中不可被宣告為虛函式的函式

常見的不不能宣告為虛函式的有 普通函式 非成員函式 靜態成員函式 內聯成員函式 建構函式 友元函式。1 為什麼c 不支援普通函式為虛函式?普通函式 非成員函式 只能被overload,不能被override,宣告為虛函式也沒有什麼意思,因此編譯器會在編譯時邦定函式。2 為什麼c 不支援建構函式為虛函...