1.關(guān)于命名空間的問題
真正的開發(fā)過程中, 盡量避免使用 using namespace std; 等直接引入整個命名空間,否則會因為命名空間污染導(dǎo)致很多不必要的問題, 比如自己寫的某個函數(shù)熄守,名稱正好和 std 中的一樣, 編譯器會不知道使用哪一個晋南, 引起編譯報錯偶妖, 建議使用:
std::cout << "Hello World" << std::endl;
2.關(guān)于頭文件引用問題
<> 先去系統(tǒng)目錄中找頭文件玩祟,如果沒有在到當(dāng)前目錄下找藏鹊。所以像標(biāo)準(zhǔn)的頭文件 stdio.h、stdlib.h 等用這個方法。
" " 首先在當(dāng)前目錄下尋找影涉,如果找不到蟹倾,再到系統(tǒng)目錄中尋找。 這個用于 include 自定義的頭文件,讓系統(tǒng)優(yōu)先使用當(dāng)前目錄中定義的。
3.c++簡介
C++ 是一種靜態(tài)類型的里逆、編譯式的偎血、通用的笨农、大小寫敏感的竭宰、不規(guī)則的編程語言廓旬,支持過程化編程、面向?qū)ο缶幊毯头盒途幊獭?br>
注意:使用靜態(tài)類型的編程語言是在編譯時執(zhí)行類型檢查,而不是在運行時執(zhí)行類型檢查。
4.c++幾大特征
繼承,封裝杖狼,多態(tài),抽象
5.c++的三個重要部分
標(biāo)準(zhǔn)的 C++ 由三個重要部分組成:
核心語言绿聘,提供了所有構(gòu)件塊彼念,包括變量洼畅、數(shù)據(jù)類型和常量,等等。
C++ 標(biāo)準(zhǔn)庫闪湾,提供了大量的函數(shù),用于操作文件绩卤、字符串等途样。
標(biāo)準(zhǔn)模板庫(STL),提供了大量的方法濒憋,用于操作數(shù)據(jù)結(jié)構(gòu)等何暇。
6.gcc,g++ 在Mac上的獲取方式
Mac OS X 上的安裝
如果您使用的是 Mac OS X,最快捷的獲取 GCC 的方法是從蘋果的網(wǎng)站上下載 Xcode 開發(fā)環(huán)境,并按照安裝說明進(jìn)行安裝。一旦安裝上 Xcode,您就能使用 GNU 編譯器蛙婴。
Xcode 目前可從 developer.apple.com/technologies/tools/ 上下載醉冤。
7.g++編譯可執(zhí)行文件
g++ -o name name.cpp
g++ -std=c++11 -o name name.cpp
8.c++關(guān)鍵字
C++ 關(guān)鍵字
| asm | else | new | this | auto | enum | operator | throw | bool | explicit | private | true |
| break | export | protected | try | case | extern | public | typedef | catch | false | register | typeid | char | float | reinterpret_cast | typename | class | for | return | union |
| const | friend | short | unsigned | const_cast | goto | signed | using | continue | if | sizeof | virtual | default | inline | static | void | delete | int | static_cast | volatile | do | long | struct | wchar_t | double | mutable | switch | while | dynamic_cast | namespace | template | |
完整關(guān)鍵字介紹可查閱:C++ 的關(guān)鍵字(保留字)完整介紹
9.關(guān)于返回值
main 函數(shù)的返回值是返回給主調(diào)進(jìn)程,使主調(diào)進(jìn)程得知被調(diào)用程序的運行結(jié)果濒析。
標(biāo)準(zhǔn)規(guī)范中規(guī)定 main 函數(shù)的返回值為 int旨怠,一般約定返回 0 值時代表程序運行無錯誤厨内,其它值均為錯誤號,但該約定并非強制。
如果程序的運行結(jié)果不需要返回給主調(diào)進(jìn)程戴差,或程序開發(fā)人員確認(rèn)該狀態(tài)并不重要帖烘,比如所有出錯信息均在程序中有明確提示的情況下氏义,可以不寫 main 函數(shù)的返回值晒哄。在一些檢查不是很嚴(yán)格的編譯器中,比如 VC, VS 等喇喉,void 類型的 main 是允許的毅访。不過在一些檢查嚴(yán)格的編譯器下,比如 g++, 則要求 main 函數(shù)的返回值必須為 int 型从撼。
所以在編程時,區(qū)分程序運行結(jié)果并以 int 型返回钧栖,是一個良好的編程習(xí)慣低零。
- 注釋
if 后可以是任意的條件語句。
下面的代碼如果 condition 條件為 tre 執(zhí)行 code1 拯杠,否則執(zhí)行 code2掏婶。
if condition
code1
else
code2
endif
11.類型
12.typedef
typedef 可以聲明各種類型名,但不能用來定義變量潭陪。用 typedef 可以聲明數(shù)組類型雄妥、字符串類型最蕾,使用比較方便。
用typedef只是對已經(jīng)存在的類型增加一個類型名老厌,而沒有創(chuàng)造新的類型瘟则。
當(dāng)在不同源文件中用到同一類型數(shù)據(jù)(尤其是像數(shù)組、指針枝秤、結(jié)構(gòu)體醋拧、共用體等類型數(shù)據(jù))時,常用 typedef 聲明一些數(shù)據(jù)類型淀弹,把它們單獨放在一個頭文件中丹壕,然后在需要用到它們的文件中用 #include 命令把它們包含進(jìn)來,以提高編程效率薇溃。
使用 typedef 有利于程序的通用與移植雀费。有時程序會依賴于硬件特性,用 typedef 便于移植
typedef unsigned int size_t;
13.枚舉類型
include <iostream>
using namespace std;
int main()
{
enum Weekend{Zero,One,Two,Three,Four};
int a,b,c,d,e;
a=Zero;
b=One;
c=Two;
d=Three;
e=Four;
cout<<a<<","<<b<<","<<c<<","<<d<<","<<e<<endl;
return 0;
}
14.extern 變量聲明
變量聲明向編譯器保證變量以給定的類型和名稱存在痊焊,這樣編譯器在不需要知道變量完整細(xì)節(jié)的情況下也能繼續(xù)進(jìn)一步的編譯盏袄。變量聲明只在編譯時有它的意義,在程序連接時編譯器需要實際的變量聲明薄啥。
當(dāng)您使用多個文件且只在其中一個文件中定義變量時(定義變量的文件在程序連接時是可用的)辕羽,變量聲明就顯得非常有用。您可以使用 extern 關(guān)鍵字在任何地方聲明一個變量垄惧。雖然您可以在 C++ 程序中多次聲明一個變量刁愿,但變量只能在某個文件、函數(shù)或代碼塊中被定義一次到逊。
15.類型轉(zhuǎn)換
變量的類型間是可以互相轉(zhuǎn)換的铣口,轉(zhuǎn)換又分為自動轉(zhuǎn)換和強制轉(zhuǎn)換。
自動轉(zhuǎn)換規(guī)則:
1觉壶、若參與運算量的類型不同脑题,則先轉(zhuǎn)換成同一類型,然后進(jìn)行運算铜靶。
2叔遂、轉(zhuǎn)換按數(shù)據(jù)長度增加的方向進(jìn)行,以保證精度不降低争剿。如int型和long型運算時已艰,先把int量轉(zhuǎn)成long型后再進(jìn)行運算。 a蚕苇、若兩種類型的字節(jié)數(shù)不同哩掺,轉(zhuǎn)換成字節(jié)數(shù)高的類型 b、若兩種類型的字節(jié)數(shù)相同涩笤,且一種有符號嚼吞,一種無符號幔嫂,則轉(zhuǎn)換成無符號類型
3、所有的浮點運算都是以雙精度進(jìn)行的誊薄,即使僅含float單精度量運算的表達(dá)式,也要先轉(zhuǎn)換成double型锰茉,再作運算呢蔫。
4、char型和short型參與運算時飒筑,必須先轉(zhuǎn)換成int型片吊。
5、在賦值運算中协屡,賦值號兩邊量的數(shù)據(jù)類型不同時俏脊,賦值號右邊量的類型將轉(zhuǎn)換為左邊量的類型。如果右邊量的數(shù)據(jù)類型長度比左邊長時肤晓,將丟失一部分?jǐn)?shù)據(jù)爷贫,這樣會降低精度:
16.變量作用域與初始化
當(dāng)局部變量被定義時,系統(tǒng)不會對其初始化补憾,您必須自行對其初始化漫萄。定義全局變量時,系統(tǒng)會自動初始化為下列值:
數(shù)據(jù)類型 初始化默認(rèn)值
int 0
char '\0'
float 0
double 0
pointer NULL
當(dāng)變量間出現(xiàn)重名的情況下盈匾,作用域小的屏蔽作用域大的腾务,所以上面第一個 cout 輸出 b 的值為 1,但由于在塊里面申請的變量作用域只限于當(dāng)前塊削饵,所以離開這個塊后變量會自動釋放岩瘦,所以第二個 cout 輸出 b 的值為 2。
全局變量的值能被局部重新賦值窿撬。
17.常量
85 // 十進(jìn)制
0213 // 八進(jìn)制
0x4b // 十六進(jìn)制
30 // 整數(shù)
30u // 無符號整數(shù)
30l // 長整數(shù)
30ul // 無符號長整數(shù)
布爾常量共有兩個启昧,它們都是標(biāo)準(zhǔn)的 C++ 關(guān)鍵字:
true 值代表真。
false 值代表假劈伴。
define identifier value
const type variable = value;
請注意箫津,把常量定義為大寫字母形式,是一個很好的編程實踐宰啦。
18.修飾符
修飾符 signed苏遥、unsigned、long 和 short 可應(yīng)用于整型赡模,signed 和 unsigned 可應(yīng)用于字符型田炭,long 可應(yīng)用于雙精度型。
修飾符 signed 和 unsigned 也可以作為 long 或 short 修飾符的前綴漓柑。例如:unsigned long int教硫。
C++ 允許使用速記符號來聲明無符號短整數(shù)或無符號長整數(shù)叨吮。您可以不寫 int,只寫單詞 unsigned瞬矩、short 或 unsigned茶鉴、long,int 是隱含的景用。例如涵叮,下面的兩個語句都聲明了無符號整型變量。
19.限定修飾符
20.explict
21.存儲類
auto伞插,extern割粮,static,mutable
22.函數(shù)
23.lamda表達(dá)式
例子:http://www.runoob.com/cplusplus/cpp-functions.html
24.數(shù)學(xué)符號
25.隨機函數(shù)
26.字符串
27.指針
http://www.runoob.com/cplusplus/cpp-pointers.html
28.引用
29.日期函數(shù)
30.輸入輸出
http://www.runoob.com/cplusplus/cpp-basic-input-output.html