在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...