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」!而coutendl、與串接運算子(<<)均定義在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++有大小寫之別。

設值

想替所宣告的變數設定一個屬於它的值,可用等號運算子(=)來設定。
有三種設定方式;

  1. 在宣告的時候設值
  2. 宣告後再設值
  3. 在程式中的任何位置宣告並設值

輸出

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++裡,如果是一行註解使用「∕∕」來表示。但如果註解的文字有好幾行時,就要用「∕*」與「*∕」將作註解的文字給括起來,而在這兩個符號之間的文字,編譯器都不會做任何處理,程式執行的過程哩,使用者也並不會看到註解內容出現在輸出設備上。