C++ 學習筆記-001
前言
C++ 的基本語法。
學習資料:C++教學手冊
程式碼解析
C++的註解是以「//」記號開始,至該行結束來表示註解的文字。而「//」所影響到的範圍,僅僅是在它之後的同一行敘述。
iostream是input/output stream的縮寫,意思為輸入/輸出串流,舉凡C++裡有關輸入與輸出相關的串流函數大部分都定義在iostream裡。
cstlib是標準函數庫standard library的縮寫。
在ANSI/ISO C++的規範中,C++標準函數庫裡所包含的函數、類別與物件等均是定義在std這個名稱空間內,所以必須指明使用的名稱空間為std,以便使用C++所提供的標準函式庫。
會使用名稱空間的用意在於它可區隔變數,使得在不同名稱空間的變數或函數,即使具有相同的名稱,也不會彼此受到干擾。
cout可以想像成C++的標準輸出裝置,而 「«」串接運算子(insert operator) 則是把其右邊的字串或變數值送到標準輸出裝置上。最後可加上換行碼endl,告訴電腦必須於此處換行。endl是end of line的縮寫,所以要特別注意,endl的最後是英文字母「l」,而不是數字「1」!而cout、endl、與串接運算子(<<)均定義在iostream標頭檔內。
ANSI/ISO C++ 標準
舊版標準:
在標頭檔的撰寫上,會使用帶有附加檔名的標頭檔;而且也不需要設定名稱空間std,程式碼照樣可以編譯與執行。
新版標準,有下列四種型態:
(1)C語言的標頭檔,以「.h」結尾,此類可以在C和C++中使用。
(2)C++語言的標頭檔,以「.h」結尾,此類只可以在C++中使用。
(3)ANSI/ISO C++標準的標頭檔,沒有副檔名,此類也只可以在C++使用。
(4)ANSI/ISO C++標準裡,從C語言移植過來的標頭檔,沒有副檔名外,字首還會加上一個小寫的c作為提示。
重點在於新版標準也將所有的函數、類別與物件名稱放在特定的名稱空間std內,所以必須利用using namespace來設定名稱空間為std。
每一個C++程式是由函數(function) 與 類別(class) 所組成的。
每一個C++程式必須有一個main()函數,而且 只能有一個 。正因如此,所以稱main()函數為 主函數(main function) 。
在C++裡,接在函數名稱之後的左大括號({)為函數區塊的開始,至右大括號(})結束。每個指令敘述結束時,必須以分號「;」做結尾。當某個指令要使用的敘述不只一行時,必須以一對大括號({})將這些敘述括起來,形成一個區塊(block)。
變數
變數在程式語言中扮演最基本的角色。變數可以用來存放資料,而使用變數之前必須先宣告它所欲儲存的資料型態。
(1)宣告
敘述如下:
int num; // 宣告 num 為整數變數
若是要同時宣告數個整數的變數時,可以像上面敘述分別宣告它們,也可以把它們都寫在同一個敘述中,每個變數之間以逗號(,)分開。
int num, num1, num2 // 同時宣告num, num1, num2 為整數變數
(2)資料型態
除了整數型態外,C++還有 長整數(long)、短整數(short)、字元(char) 與 布林(bool) 等型態。
(3)名稱與其限制
名稱依個人喜好來決定,但名稱不能使用C++的關鍵字(keyword),但習慣上會以變數所代表的意義來取名。
C++變數名稱的字元可以是英文字母、數字或底線。但要注意,變數名稱中不能有空白字元,不能使用底線以外的其它符號(如$、%等),且第一個字元不能是數字。還有C++有大小寫之別。
設值
想替所宣告的變數設定一個屬於它的值,可用等號運算子(=)來設定。
有三種設定方式;
- 在宣告的時候設值
- 宣告後再設值
- 在程式中的任何位置宣告並設值
輸出
C語言是使用printf()函數來做格式化的輸出。
而C++則是使用cout與串接運算子(<<)來輸出。
敘述如下:
``` cout « “Hello CPP” « endl``
C++將雙引號之間的字元稱為字串(string),也就是說,字串是由字元串接而成。
cout是C++預先定義好的一個物件,可以將字串或數字輸出到裝置上。
如果要把字串換行輸出,除了用endl外,也可以用換行字元 “\n”,即一個反斜線加上字母n,代表new line之意。
識別字
在C++中,變數、函數或者是類別的名稱都為識別字(identifier)。識別字的字元可以是字母、數字或底線。C++的編譯器大多沒有限定識別字的長度。
識別字名稱不能使用到C++的關鍵字。
識別字的第一個字元必須是英文大小字母或是底線,空白字元與特殊符號皆不能使用。
C++的識別字有大小寫之別。
C++有識別字的命名習慣原則
| 識別字 | 命名原則 |
|---|---|
| 常數 | 全部字元皆由英文大寫字母及底線組成 |
| 變數 | 英文小寫字母開始,若由數個英文單字組成,則後面的英文字由大寫起頭,其餘小寫 |
| 函數 | 英文小寫字母開始,若由數個英文單字組成,則後面的英文字由大寫起頭,其餘小寫 |
| 類別 | 英文大寫字母開始,若由數個英文單字組成,則後面的英文字由大寫起頭,其餘小寫 |
關鍵字
如果識別字是開發者用來命名變數、函數或者是類別的文字,而關鍵字就是編譯程式本身所使用的識別字。
C++常用關鍵字
| asm | auto | bool | break | case |
|---|---|---|---|---|
| catch | char | class | const | const_cast |
| continue | default | delete | do | double |
| dynamic_cast | else | enum | explicit | extern |
| false | float | for | friend | goto |
| if | inline | int | long | mutable |
| namespace | new | operator | private | protected |
| public | register | reinterpret_cast | return | short |
| signeded | sizeof | static | static_cast | struct |
| try | typedef | this | throw | true |
| unsigned | using | virtual | void | volatile |
| wchart_t | while |
註解
在C++裡,如果是一行註解使用「∕∕」來表示。但如果註解的文字有好幾行時,就要用「∕*」與「*∕」將作註解的文字給括起來,而在這兩個符號之間的文字,編譯器都不會做任何處理,程式執行的過程哩,使用者也並不會看到註解內容出現在輸出設備上。