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.枚舉類型?