選單
×
   ❮     
HTML CSS JAVASCRIPT SQL PYTHON JAVA PHP HOW TO W3.CSS C C++ C# BOOTSTRAP REACT MYSQL JQUERY EXCEL XML DJANGO NUMPY PANDAS NODEJS R TYPESCRIPT ANGULAR GIT POSTGRESQL MONGODB ASP AI GO KOTLIN SASS VUE DSA GEN AI SCIPY AWS CYBERSECURITY DATA SCIENCE
     ❯   

C++ 教程

C++ 主頁 C++ 簡介 C++ 入門 C++ 語法 C++ 輸出 C++ 註釋 C++ 變數 C++ 使用者輸入 C++ 資料型別 C++ 運算子 C++ 字串 C++ 數學 C++ 布林值 C++ If...Else C++ Switch C++ While 迴圈 C++ For 迴圈 C++ Break/Continue C++ 陣列 C++ 結構體 C++ 列舉 C++ 引用 C++ 指標

C++ 函式

C++ 函式 C++ 函式引數 C++ 函式過載 C++ 作用域 C++ 遞迴

C++ 類

C++ OOP C++ 類/物件 C++ 類方法 C++ 建構函式 C++ 訪問修飾符 C++ 封裝 C++ 繼承 C++ 多型 C++ 檔案 C++ 異常 C++ 日期

C++ 資料結構

C++ 資料結構與 STL C++ Vectors C++ List C++ Stacks C++ Queues C++ Deque C++ Sets C++ Maps C++ 迭代器 C++ 演算法

C++ How To

C++ 兩數相加 C++ 隨機數

C++ 參考

C++ 參考 C++ 關鍵字 C++ <iostream> C++ <fstream> C++ <cmath> C++ <string> C++ <cstring> C++ <ctime> C++ <vector> C++ <algorithm>

C++ 示例

C++ 示例 C++ 現實生活中的例子 C++ 編譯器 C++ 練習 C++ 測驗 C++ 證書


C++ 建構函式


建構函式

C++ 中的建構函式是建立類物件時自動呼叫的一個特殊方法

要建立建構函式,請使用與類相同的名稱,後跟括號 ()

示例

class MyClass {     // 類
  public:           // 訪問說明符
    MyClass() {     // 建構函式
      cout << "Hello World!";
    }
};

int main() {
  MyClass myObj;    // 建立 MyClass 的物件(這將呼叫建構函式)
  return 0;
}
自己動手試一試 »

注意:建構函式與類同名,它始終是 public 的,並且沒有返回值。


構造方法引數

建構函式也可以接受引數(就像普通函式一樣),這對於設定屬性的初始值非常有用。

以下類具有 brandmodelyear 屬性,以及一個具有不同引數的建構函式。在建構函式內部,我們將屬性設定為等於建構函式引數(例如 brand=x)。當我們呼叫建構函式(透過建立類的物件)時,我們將引數傳遞給建構函式,它將相應屬性的值設定為相同

示例

class Car {        // 類
  public:          // 訪問說明符
    string brand;  // 屬性
    string model;  // 屬性
    int year;      // 屬性
    Car(string x, string y, int z) { // 帶引數的建構函式
      brand = x;
      model = y;
      year = z;
    }
};

int main() {
  // 建立 Car 物件並呼叫帶有不同值的建構函式
  Car carObj1("BMW", "X5", 1999);
  Car carObj2("Ford", "Mustang", 1969);

  // 列印值
  cout << carObj1.brand << " " << carObj1.model << " " << carObj1.year << "\n";
  cout << carObj2.brand << " " << carObj2.model << " " << carObj2.year << "\n";
  return 0;
}
自己動手試一試 »

與函式一樣,建構函式也可以在類外定義。首先,在類內宣告建構函式,然後透過指定類名,後跟作用域解析 :: 運算子,再後跟建構函式名(與類名相同)來在類外定義它。

示例

class Car {        // 類
  public:          // 訪問說明符
    string brand;  // 屬性
    string model;  // 屬性
    int year;      // 屬性
    Car(string x, string y, int z); // 建構函式宣告
};

// 類外建構函式定義
Car::Car(string x, string y, int z) {
  brand = x;
  model = y;
  year = z;
}

int main() {
  // 建立 Car 物件並呼叫帶有不同值的建構函式
  Car carObj1("BMW", "X5", 1999);
  Car carObj2("Ford", "Mustang", 1969);

  // 列印值
  cout << carObj1.brand << " " << carObj1.model << " " << carObj1.year << "\n";
  cout << carObj2.brand << " " << carObj2.model << " " << carObj2.year << "\n";
  return 0;
}
自己動手試一試 »

×

聯絡銷售

如果您想將 W3Schools 服務用於教育機構、團隊或企業,請傳送電子郵件給我們
sales@w3schools.com

報告錯誤

如果您想報告錯誤,或想提出建議,請傳送電子郵件給我們
help@w3schools.com

W3Schools 經過最佳化,旨在方便學習和培訓。示例可能經過簡化,以提高閱讀和學習體驗。教程、參考資料和示例會不斷審查,以避免錯誤,但我們無法保證所有內容的完全正確性。使用 W3Schools 即表示您已閱讀並接受我們的使用條款Cookie 和隱私政策

版權所有 1999-2024 Refsnes Data。保留所有權利。W3Schools 由 W3.CSS 提供支援