C++ 程式可以定義為對象的集合,這些對象通過調用彼此的方法進行互動。現在讓我們簡要地看一下什麼是類、對象,方法、即時變量。
- 對象 - 對象具有狀态和行為。例如:一隻狗的狀态 - 顔色、名稱、品種,行為 - 搖動、叫喚、吃。對象是類的執行個體。
- 類 - 類可以定義為描述對象行為/狀态的模闆/藍圖。
- 方法 - 從基本上說,一個方法表示一種行為。一個類可以包含多個方法。可以在方法中寫入邏輯、操作資料以及執行所有的動作。
- 即時變量 - 每個對象都有其獨特的即時變量。對象的狀态是由這些即時變量的值建立的。
C++ 程式結構
讓我們看一段簡單的代碼,可以輸出單詞 Hello World。
執行個體
#include <iostream>
using namespace std;
// main() 是程式開始執行的地方
int main()
{
cout << "Hello World"; // 輸出 Hello World
return 0;
}
接下來我們講解一下上面這段程式:
- C++ 語言定義了一些頭檔案,這些頭檔案包含了程式中必需的或有用的資訊。上面這段程式中,包含了頭檔案 <iostream> 。
- 下一行 告訴編譯器使用 std 命名空間。命名空間是 C++ 中一個相對新的概念。
- 是一個單行注釋。單行注釋以 // 開頭,在行末結束。
- 是主函數,程式從這裡開始執行。
- cout << "Hello World"; 會在螢幕上顯示消息 "Hello World"。
- return 0; 終止 main( )函數,并向調用程序傳回值 0。
編譯 & 執行 C++ 程式
接下來讓我們看看如何把源代碼儲存在一個檔案中,以及如何編譯并運作它。下面是簡單的步驟:
- 打開一個文本編輯器,添加上述代碼。
- 儲存檔案為 hello.cpp。
- 打開指令提示符,進入到儲存檔案所在的目錄。
- 鍵入 'g++ hello.cpp ',輸入回車,編譯代碼。如果代碼中沒有錯誤,指令提示符會跳到下一行,并生成 a.out 可執行檔案。
- 現在,鍵入 ' a.out' 來運作程式。
- 您可以看到螢幕上顯示 ' Hello World '。
$ g++ hello.cpp
$ ./a.out
Hello World
請確定您的路徑中已包含 g++ 編譯器,并確定在包含源檔案 hello.cpp 的目錄中運作它。
您也可以使用 makefile 來編譯 C/C++ 程式。
C++ 中的分号 & 語句塊
在 C++ 中,分号是語句結束符。也就是說,每個語句必須以分号結束。它表明一個邏輯實體的結束。
例如,下面是三個不同的語句:
x = y;
y = y+1;
add(x, y);
語句塊是一組使用大括号括起來的按邏輯連接配接的語句。例如:
C++ 不以行末作為結束符的辨別,是以,您可以在一行上放置多個語句。例如:
等同于
x = y; y = y+1; add(x, y);
C++ 辨別符
C++ 辨別符是用來辨別變量、函數、類、子產品,或任何其他使用者自定義項目的名稱。一個辨別符以字母 A-Z 或 a-z 或下劃線 _ 開始,後跟零個或多個字母、下劃線和數字(0-9)。
C++ 辨別符内不允許出現标點字元,比如 @、& 和 %。C++ 是區分大小寫的程式設計語言。是以,在 C++ 中,
Manpower和
manpower是兩個不同的辨別符。
下面列出幾個有效的辨別符:
mohd zara abc move_name a_123
myname50 _temp j a23b9 retVal
C++ 關鍵字
下表列出了 C++ 中的保留字。這些保留字不能作為常量名、變量名或其他辨別符名稱。
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 |
完整關鍵字介紹可查閱:C++ 的關鍵字(保留字)完整介紹
三字元組
三字元組就是用于表示另一個字元的三個字元序列,又稱為三字元序列。三字元序列總是以兩個問号開頭。
三字元序列不太常見,但 C++ 标準允許把某些字元指定為三字元序列。以前為了表示鍵盤上沒有的字元,這是必不可少的一種方法。
三字元序列可以出現在任何地方,包括字元串、字元序列、注釋和預處理指令。
下面列出了最常用的三字元序列:
替換 | |
---|---|
??= | # |
??/ | \ |
??' | ^ |
??( | [ |
??) | ] |
??! | | |
??< | |
??> | |
??- | ~ |
如果希望在源程式中有兩個連續的問号,且不希望被預處理器替換,這種情況出現在字元常量、字元串字面值或者是程式注釋中,可選辦法是用字元串的自動連接配接:"...?""?..."或者轉義序列:"...?\?..."。
從Microsoft Visual C++ 2010版開始,該編譯器預設不再自動替換三字元組。如果需要使用三字元組替換(如為了相容古老的軟體代碼),需要設定編譯器指令行選項/Zc:trigraphs
g++仍預設支援三字元組,但會給出編譯警告。
C++ 中的空格
隻包含空格的行,被稱為空白行,可能帶有注釋,C++ 編譯器會完全忽略它。
在 C++ 中,空格用于描述空白符、制表符、換行符和注釋。空格分隔語句的各個部分,讓編譯器能識别語句中的某個元素(比如 int)在哪裡結束,下一個元素在哪裡開始。是以,在下面的語句中:
int age;
在這裡,int 和 age 之間必須至少有一個空格字元(通常是一個空白符),這樣編譯器才能夠區分它們。另一方面,在下面的語句中:
fruit = apples + oranges; // 擷取水果的總數
fruit 和 =,或者 = 和 apples 之間的空格字元不是必需的,但是為了增強可讀性,您可以根據需要适當增加一些空格。