C++ 基本語法


C++ 程式可以定義為物件的集合,這些物件透過呼叫彼此的方法進行互動。現在讓我們簡單地看一下什麼是類別、對象,方法、即時變數。

  • 物件 - 物件具有狀態和行為。例如:一隻狗的狀態 - 顏色、名稱、品種,行為 - 搖晃、叫喚、吃。物件是類別的實例。

  • 類別 - 類別可以定義為描述物件行為/狀態的範本/藍圖。

  • 方法 - 從基本上來說,一個方法表示一種行為。一個類別可以包含多個方法。可以在方法中寫入邏輯、操作資料、執行所有的動作。

  • 即時變數 - 每個物件都有其獨特的即時變數。物件的狀態是由這些即時變數的值所建立的。

C++ 程式結構

讓我們來看一段簡單的程式碼,可以輸出單字 Hello World

#include <iostream>
using namespace std;

// main() 是程序开始执行的地方

int main()
{
   cout << "Hello World"; // 输出 Hello World
   return 0;
}

接下來我們講解一下上面這段程式:

  • C++ 語言定義了一些頭文件,這些頭文件包含了程式中必需的或有用的信息。上面這段程式中,包含了頭檔 <iostream>

  • using namespace std; 告訴編譯器使用 std 命名空間。命名空間是 C++ 中一個相對新的概念。

  • 下一行 // main() 是程式開始執行的地方 是一個單行註解。單行註解以 // 開頭,在行結束結束。

  • 下一行 int main() 是主函數,程式從這裡開始執行。

  • 下一行 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);

區塊是一組使用大括號括起來的按邏輯連接的語句。例如:

{
   cout << "Hello World"; // 输出 Hello World
   return 0;
}

C++ 不以行末作為結束符的標識,因此,您可以在一行上放置多個語句。例如:

x = y;
y = y+1;
add(x, y);

等同於

x = y; y = y+1; add(x, y);

C++ 識別碼

C++ 識別碼是用來識別變數、函數、類別、模組,或任何其他使用者自訂項目的名稱。一個標識符以字母 A-Z 或 a-z 或底線 _ 開始,後面跟著零個或多個字母、底線和數字(0-9)。

C++ 標識符內不允許出現標點字符,例如 @、$ 和 %。 C++ 是區分大小寫的程式語言。因此,在 C++ 中,Manpowermanpower 是兩個不同的識別碼。

下面列出幾個有效的識別符:

mohd       zara    abc   move_name  a_123
myname50   _temp   j     a23b9      retVal

C++ 關鍵字

下表列出了 C++ 中的保留字。這些保留字不能作為常數名稱、變數名稱或其他識別碼名稱。

##auto enumoperatorthrow#boolexplicitprivatetruebreakexport#protectedtrycaseexternpublictypedef#catchfalseregister typeidcharfloatreinterpret_cast#class#const##friendshortunsignedconst_cast#gotosignedusing#continueifsizeofvirtualdefaultinlinestaticvoiddeleteintstatic_castvolatile##dolongstructwchar_t
asmelsenewthis
##typename
forreturnunion

double

mutable

switch

while

dynamic_castnamespace三字元組就是用來表示另一個字元的三個字元序列,又稱為三字元序列。三字符序列總是以兩個問號開頭。 下面列出了最常用的三字元序列:三字元組取代
template 
三字元組
三字元序列較不常見,但 C++ 標準允許把某些字元指定為三字元序列。以前為了表示鍵盤上沒有的字符,這是必不可少的一種方法。 三字元序列可以出現在任何地方,包括字串、字元序列、註解和預處理指令。
??=
#??/\
?? '^
??([
?) #]
??!######|#############??<#####{### #########??>######}#############??-######~######### ####

所有的編譯器都不支援三字符組,為避免造成混亂,不建議使用三字符組。

C++ 中的空格

只包含空格的行,稱為空白行,可能帶有註釋,C++ 編譯器會完全忽略它。

在 C++ 中,空格用來描述空格符、製表符、換行符和註解。空格分隔語句的各個部分,讓編譯器能辨識語句中的某個元素(例如 int)在哪裡結束,而下一個元素在哪裡開始。因此,在下面的語句中:

int age;

在這裡,int 和 age 之間必須至少有一個空格字元(通常是一個空白符),這樣編譯器才能夠區分它們。另一方面,在下面的語句中:

fruit = apples + oranges;   // 获取水果的总数

fruit 和 =,或 = 和 apples 之間的空格字元不是必需的,但是為了增強可讀性,您可以根據需要適當增加一些空格。