c++ 98中的非強型別作用域,允許隱式轉換為整型,占用儲存空間及符號性不確定,都是列舉類的缺點。c++11引入列舉類,即強型別列舉。
強型別列舉優勢:
強作用域,強型別列舉成員的名稱不會被輸出到其父作用域空間
轉換限制,強型別列舉成員的值不可以與整形隱式地相互轉換
可以指定底層型別。強型別列舉預設的底層型別為int,但也可以顯示地指定底層型別,具體方法在列舉名稱後面加上":type",type是除了wchar_t以外的任何整型,如:
enum class weight: char ;
4.2.1 c++ 11的智慧型指標
unique_ptr
不能與其它unique_ptr型別的指標物件共享所指的記憶體。
unique_ptrup1(new int(11));
unique_ptrup2 = up1; //編譯錯誤
unique_ptrup3 = move(up1); //現在up3是資料唯一的upique_ptr智慧型指標。
shared_ptr
實現上採用引用計數,其中乙個shard_ptr指標放棄所有權(reset()),其它shared_ptr對物件的引用並不會受到影響。只有引用計數歸0時,shared_ptr才會真正釋放所占有的堆記憶體的空間。
weak_ptr
可以指向shared_ptr指標指向的物件記憶體,卻不擁有該記憶體(不會增加引用計數),使用weak_ptr成員的lock,返回其指向記憶體的乙個shared_ptr物件,且在所指物件記憶體已經無效時,返回nullptr,這個能夠驗證share_ptr智慧型指標的有效性。
void check(weak_ptr&wp) else
}
深入淺出Javascript 型別
js有6種原型資料型別 null,undefined,boolean,number,string,symbol var as null undefined console.log as nullnull.asd uncaught typeerror cannot read property asd ...
C 深入淺出之指標
1 指標陣列 char str 10 指標陣列,顧名思義是乙個陣列,其元素是乙個指標。上述 是定義乙個指標陣列,其陣列元素為指向字元的指標。所謂指標陣列,重頭戲在於陣列,指標可以抽象為修飾符,那麼如何來理解指標陣列呢?很簡單,的優先順序高於 因此先被結合,加上陣列名,就構成了陣列。2 陣列指標 in...
深入淺出c 之 this指標
前言 c語言中的陣列指標和指標陣列 陣列指標,是指向陣列的指標的縮寫 指標陣列,是存放指標的陣列的縮寫。其實很多時候,往往因為簡寫和縮寫帶給我們很多困惑。我曾想過不用簡稱去學習,但在很多時候,我們查詢的書籍文件和文章中還是會頻頻出現這樣的簡稱,所以有必要扣一下字眼了。1 int p 3 優先順序大於...