c++primer第五版第二單元內容總結

第二單元總結筆記
1.引用
     引用爲對象起了另外一個名字,引用類型引用另外一種類型。引用並非對象,他只是已存在對象的另外一個名字。引用定義時必須賦予初始值,綁定與一個具體對象。
2.指針
    指針時指向另外一種類型的複合類型。與引用相似指針實現了對其他對象的間接訪問。指針與引用也有很多區別。其一,指針本身就是一個對象,允許對指針賦值和拷貝,而且在指針的生週期內可以指向幾個不同的對象。其二,指針無需再定義時賦值。如果沒初始化,指針將有個不確定的值。(指針如果沒有初始化,不能夠使用。)
3.利用const聲明常量,如果想多個文件共用const對象,應該在前面加extern關鍵字。c++11新標準規定,允許將變量聲明爲constexpr類型以便編譯器來驗證變量的值是否是一個常量表達式。在constexpr聲明中如果定義一個指針,限定符僅對指針有效。例如:const int *p = nullptr; //p是一個指向整形常量的指針。constexpr int *q = nullptr;//q是一個指向整數的常量指針。
4.類型別名
    (1)傳統方法用typedef 例如:typedef double wages;//wages是double的同義詞。typedef wages base,*p;//base是double的同義詞,p是double* 的同義詞。(2)c++11新標準規定了一種新方法用using例如:using SI = Sale_item;//SI就是Sale_item的同義詞。
5.auto類型說明符
    auto類型說明符,是讓編譯器替我們分析表達式所屬的類型,和其他特定的類型說明符不同,auto是編譯器通過初始值來推算變量的類型。因此auto定義的變量不許有初始值。(auto一般會忽略頂層的const,保留底層的const。如需聲明const必須顯式的定義)。
6.decltype類型提示符
    decltype的作用是選擇並返回操作數的數據類型,編譯器只分析表達式並得到它的類型,不計算表達式的值。如果decltype使用的表達式不是一個變量,則返回表達式結果的類型。
7.auto和decltype的區別
    auto通過變量初始值判斷類型,而decltype是通過表達式分析表達式的類型。decltype的結果類型與表達式形式密相關,凡是變量名加上括號的得到的類型一定是引用。
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章