C++ 類方法解析:內外定義、引數、訪問控制與靜態方法詳解

小万哥丶發表於2024-04-18

C++ 類方法

類方法,也稱為成員函式,是屬於類的函式。它們用於操作或查詢類資料,並封裝在類定義中。類方法可以分為兩種型別:

  • 類內定義方法: 直接在類定義內部宣告和定義方法。
  • 類外定義方法: 在類定義內部宣告方法,並在類外部單獨定義方法。

類內定義方法

在類定義內部可以直接宣告和定義方法,這是一種簡潔的方式。

示例:

class Person {
public:
  void introduce() {
    cout << "Hello, my name is " << name << endl;
  }

  string name; // 屬性
};

int main() {
  Person p1;
  p1.name = "Alice";
  p1.introduce(); // 呼叫類內定義的方法

  return 0;
}

在這個例子中,Person 類包含了一個名為 introduce() 的方法,用於列印物件的姓名。

類外定義方法

為了提高程式碼的可讀性和維護性,有時會將方法定義移至類外部。這種情況下,需要在類內部先宣告方法,然後再在類外部單獨定義方法。

示例:

class Person {
public:
  void introduce(); // 方法宣告

  string name; // 屬性
};

// 在類外部定義方法
void Person::introduce() {
  cout << "Hello, my name is " << name << endl;
}

int main() {
  Person p1;
  p1.name = "Bob";
  p1.introduce(); // 呼叫類外定義的方法

  return 0;
}

方法引數

類方法可以包含引數,用於傳遞資料並影響方法的行為。

示例:

class Calculator {
public:
  int add(int a, int b); // 宣告帶兩個引數的方法

  int subtract(int a, int b); // 宣告帶兩個引數的方法
};

// 在類外部定義方法
int Calculator::add(int a, int b) {
  return a + b;
}

int Calculator::subtract(int a, int b) {
  return a - b;
}

int main() {
  Calculator calc;
  int sum = calc.add(5, 3); // 呼叫帶引數的方法
  int difference = calc.subtract(10, 7);

  cout << "Sum: " << sum << endl;
  cout << "Difference: " << difference << endl;

  return 0;
}

在這個例子中,Calculator 類包含了兩個方法:add()subtract(),用於計算兩個數字的和和差。這兩個方法都包含兩個引數,分別表示要計算的數字。

訪問控制

類方法的訪問許可權可以透過訪問控制修飾符來控制,例如 publicprivateprotected

  • public:方法可以在類外部的任何地方呼叫。
  • private:方法只能在類的內部呼叫。
  • protected:方法可以在類的內部或其子類中呼叫。

靜態方法

靜態方法與類本身相關,而不是與特定物件的例項相關。靜態方法不需要建立物件就可以呼叫,通常用於定義與類相關的實用程式函式。

要宣告靜態方法,請在方法宣告前使用 static 關鍵字。

示例:

class MathUtils {
public:
  static int square(int x); // 宣告靜態方法

  static int cube(int x); // 宣告靜態方法
};

// 在類外部定義靜態方法
int MathUtils::square(int x) {
  return x * x;
}

int MathUtils::cube(int x) {
  return x * x * x;
}

int main() {
  int result1 = MathUtils::square(5); // 呼叫靜態方法
  int result2 = MathUtils::cube(3);

  cout << "Square: " << result1 << endl;
  cout << "Cube: " << result2 << endl;

  return 0;
}

在這個例子中,MathUtils 類包含了兩個靜態方法:square()cube(),用於計算數字的平方和立方。這些方法不需要建立物件就可以呼叫,直接使用類名即可。

總結

類方法是 C++ 物件導向程式設計的重要組成部分,用於封裝類行為並提供對類資料的操作。透過理解類內和類外定義方法、方法引數、訪問控制和靜態方法等概念,您可以有效地利用類方法來構建

最後

為了方便其他裝置和平臺的小夥伴觀看往期文章:

微信公眾號搜尋:Let us Coding,關注後即可獲取最新文章推送

看完如果覺得有幫助,歡迎點贊、收藏、關注

相關文章