C++基本語法



當我們考慮一個C++程式時,它可以定義為一個透過呼叫彼此方法來通訊的物件集合。現在讓我們簡要了解一下類、物件、方法和例項變數的含義。

  • 物件 − 物件具有狀態和行為。例如:狗具有狀態(顏色、名稱、品種)以及行為(搖尾、吠叫、吃東西)。物件是類的例項。

  • − 類可以定義為一個模板/藍圖,它描述了其型別物件支援的行為或狀態。

  • 方法 − 方法基本上是一種行為。一個類可以包含許多方法。在方法中編寫邏輯,操作資料,並執行所有操作。

  • 例項變數 − 每個物件都有自己獨特的一組例項變數。物件的狀體是由分配給這些例項變數的值建立的。

C++程式結構

C++程式的基本結構包含以下部分

  • 標頭檔案包含部分:這是我們包含所有所需標頭檔案的部分,我們將在這個程式中使用這些標頭檔案的函式。
  • 名稱空間部分:這是我們使用名稱空間的部分。
  • main()部分:在這個部分,我們編寫我們的主程式碼。main()函式是任何C++程式設計程式碼的入口點,程式的執行從此處開始。

要了解更多資訊,請閱讀:C++ Hello, World 程式

示例

讓我們來看一段簡單的程式碼,它將列印單詞Hello World

#include <iostream>
using namespace std;

// main() is where program execution begins.
int main() {
   cout << "Hello World"; // prints Hello World
   return 0;
}

示例解釋

讓我們看看上面程式的各個部分:

  • C++語言定義了幾個標頭檔案,其中包含程式必需或有用的資訊。對於此程式,需要標頭檔案<iostream>

  • 語句using namespace std;告訴編譯器使用std名稱空間。名稱空間是最近才新增到C++中的。

  • 下一行 '// main() is where program execution begins.' 是C++中可用的單行註釋。單行註釋以//開頭,到行尾結束。

  • 語句int main()是程式執行開始的主函式。

  • 下一行cout << "Hello World";導致訊息“Hello World”顯示在螢幕上。

  • 下一行return 0;終止main()函式,並將其值0返回給呼叫程序。

編譯和執行C++程式

讓我們看看如何儲存檔案、編譯和執行程式。請按照以下步驟操作:

  • 開啟文字編輯器並新增上述程式碼。

  • 將檔案儲存為:hello.cpp

  • 開啟命令提示符並轉到儲存檔案的目錄。

  • 鍵入“g++ hello.cpp”並按Enter鍵編譯程式碼。如果程式碼中沒有錯誤,命令提示符將帶您進入下一行,並將生成a.out可執行檔案。

  • 現在,鍵入“a.out”執行程式。

  • 您將能夠看到視窗上列印的“Hello World”。

$ g++ hello.cpp
$ ./a.out
Hello World

確保g++在您的路徑中,並且您在包含檔案hello.cpp的目錄中執行它。

您可以使用makefile編譯C/C++程式。有關更多詳細資訊,您可以檢視我們的“Makefile 教程”

C++中的分號和塊

在C++中,分號是語句終止符。也就是說,每個單獨的語句都必須以分號結尾。它表示一個邏輯實體的結束。

例如,以下是三個不同的語句:

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

塊是一組邏輯上連線的語句,它們被起始和結束大括號包圍。例如:

{
   cout << "Hello World"; // prints 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++是一種區分大小寫的程式語言。因此,Manpowermanpower在C++中是兩個不同的識別符號。

以下是一些可接受的識別符號示例:

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++編譯器會完全忽略它。

空白是C++中用於描述空格、製表符、換行符和註釋的術語。空白將語句的一個部分與另一部分隔開,並使編譯器能夠識別語句中一個元素(如int)的結束和下一個元素的開始。

語句1

int age;

在上例語句中,int和age之間必須至少有一個空白字元(通常是空格),以便編譯器能夠區分它們。

語句2

fruit = apples + oranges;   // Get the total fruit

在上面的語句2中,fruit和=之間,以及=和apples之間不需要空格字元,儘管為了可讀性,您可以隨意新增一些空格。

面向物件方法的C++程式結構

C++除了支援程序式程式設計方法外,還支援面向物件程式設計方法。

示例

此示例演示基於面向物件方法的C++程式。

#include <iostream>
using namespace std;

class Numbers {
 private:
  int a;
  int b;

 public:
  // Function to set values
  void setValues(int x, int y) {
    a = x;
    b = y;
  }

  // Function to add these numbers
  double addition() { return a + b; }

  // Function to display values
  void display() { cout << "a: " << a << ", b: " << b << endl; }
};

int main() {
  // Create an object of Numbers class
  Numbers num;

  // Set values
  num.setValues(10, 20);

  // Display the values
  num.display();

  // Find the addition
  int sum = num.addition();
  cout << "Sum of numbers: " << sum << endl;

  return 0;
}

面向物件方法的C++程式結構的組成部分

採用面向物件方法的C++程式結構的不同部分如下所示

1. 類宣告

一個是物件的模板,或者可以說類是生產物件的工廠。它是一種自定義資料型別,用於構建物件的結構。

類宣告包含以下部分

  • 訪問修飾符:C++支援三種類型的訪問修飾符:private(私有)、public(公有)和protected(保護)。資料成員和成員函式的可訪問性由訪問修飾符定義。
  • 資料成員和成員函式:在類宣告中使用的變數稱為資料成員,成員函式是在資料成員上操作的函式。

示例

根據上述示例,類宣告的以下部分:

class Numbers {
 private:
  int a;
  int b;

 public:
  // Function to set values
  void setValues(int x, int y) {
    a = x;
    b = y;
  }

  // Function to add these numbers
  double addition() { return a + b; }

  // Function to display values
  void display() { cout << "a: " << a << ", b: " << b << endl; }
};

以下是定義在private訪問修飾符下的資料成員,即這些資料成員可以被類內的成員函式使用:

private:
  int a;
  int b;

以下是類中使用的成員函式:

void setValues(int x, int y);
double addition();
void display();

2. 物件建立

在上例中,以下語句是物件建立語句:

Numbers num;
廣告