C 11的default和delete的說明

2021-08-31 20:55:02 字數 598 閱讀 7169

在c++11標準中的描述是:

=default: it means that you want to use the compiler-generated version of that function, so you don't need to specify a body.

=delete: it means that you don't want the compiler to generate that function automatically.

解釋一下:

(1)針對於建構函式,析構函式,拷貝建構函式,拷貝賦值運算子.

(2)函式宣告後面加了 =default; 表示按系統的預設函式定義來,不用單獨寫函式定義了.

(3)函式宣告後面加了 =delete; 表示強制取消系統的預設定義.

例如:

class member

;

可以正常呼叫member的預設建構函式,而不用專門寫建構函式定義.

而去掉=default; 則會報錯error: undefined symbol.

增加=delete; 則會報錯error: call to deleted constructor

C 11的default和delete關鍵字

c11的新特性實在是太多了,這2個關鍵字關注的人倒是少了很多,其中有乙個原因便是編譯器支援得太慢了 vs到vs2013才支援上 不過這2個關鍵字那真是極為有用的,下面我們來看看。default關鍵字 首先我們有乙個字串類 class cstring 析構函式 cstring public void ...

C11編輯器公升級和C11標準使用

c11中的一些特性需要對應的編譯器才能支援。而有些系統預設的編譯器並不支援c11,所以需要4.8及其以上的版本。以下採用c11才支援的std unordered set來進行測試。include include include include include using namespace std ...

Code Blocks介紹和使用C 11

2 工程使用 參考code blocks支援多種編譯器,包括gcc,mingw,digital mars,microsoft visual c borland c llvm clang,watcom,lcc和intel c 編譯器。雖然ide是為c 語言設計的,但是對其他語言也有一些支援,包括for...