C++速成-1

1.生成一個C++程序的步驟? c++

  編譯預處理;編譯;連接 安全

2.名字空間的做用? 函數

  名字空間是用來處理不一樣代碼段名稱衝突問題的。 spa

3.名字空間的使用方法? 對象

  方法一:先把名字空間中的聲明(如名字空間變量對象成員的聲明或定義、函數原型、自定義數據類型等)放進一個頭文件中,就如同頭文用於各類聲明同樣。----名字空間的聲明。 接口

            再經過#include文件包含存在名字空間聲明的那個文件,再在名字空間內部實現各類定義。----名字空間的實現。 作用域

    方法二:甚至能夠把名字空間的聲明和定義放在一塊兒,在聲明時,就實現名字空間中成員的定義。這相似於類中成員函數的內聯。 原型

4.如何使用名字空間中的成員? 編譯器

     方法一:可使用下面的指令。這表示把名字空間中的全部成員都釋放出來,使得名字空間中的成員又具備全局做用域。這將致使的後果是可能再次引入名字衝突的問題。 編譯

    using namespace 名字空間名稱;

    方法二:先聲明後使用。在預計要使用多少成員,就在源代碼文件任意位置經過指令

     using 名字空間名稱::成員名;        聲明要使用到的成員,在下文直接引用成員名便可。

    方法三:在使用到的每一個成員名稱以前統一加上

       名字空間名::成員名的方式引用名字空間中的成員。

    相比第一種方法,後兩種更加安全。


5.易錯的數據類型總結?

    float  f=3.14f;            由於小數默認是double類型,應該顯示的說明float變量的f後綴。

    double db=3.15;        沒問題

    long double ldb=3.24L;  大寫L不能省,c++標準規定精度至少不低於double

    char  ch='X';                單字節字符,未作特別說明只是ASCII碼字符是有符號和無符號的交集。

    char16_t ch=u'X';        雙字節字符,前綴u不能省

    char32_t ch=U'X';        四字節字符,前綴U不能省

    wchar_t  wch=L'X'        寬字節字符,前綴L不能省

    bool型:C裏面沒有的類型,C++新增的數據類型。範圍false(0),true(非0)

    C++11新增的:

   auto    自動類型推導,由編譯器自動判斷類型。

   decltype(exp)  自動類型推導,根據表達式的最終類型肯定類型T

    

6.C++類型轉換的方式?

    1)自動類型轉換:適合於賦值兼容的類型之間的轉換。好比整型實型字符型。

    2)強制類型轉換:

        格式一:(T)exp  無論表達式是單項式仍是多項式,都將轉換離T最近的那項變量或對象。

         格式二:(T)(EXP)  整個表達式求以後將轉換成T類型

    3)????強類型轉換:


7.移位?

    邏輯移位:是指任何數的二進制模式經過移位後產生的空位,按0填充。好比C/C++的左移

    算數移位:是指任何數的二進制位模式移位後產生的空位,按符號位填充。

    <<左移運算:無論有符號值(負數)仍是無符號值左移老是左移丟,地位補0;

    >>右移運算:無符號值右移仍然是邏輯移位,右移丟,高位補0,而負數右移,高位空位補1

    總結:1)非負數的左移右移都是邏輯移位,移丟的空位補0,負數的左移也是空位按0填充,而右移高位補1

             2)對於有符號值(負數),移位會失去跨平臺移植性,對於涉及移位操做的全部函數接口,都應該採用無 

     符號的參數。unsigned int...


8.枚舉類型?

相關文章
相關標籤/搜索