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()
,用於計算兩個數字的和和差。這兩個方法都包含兩個引數,分別表示要計算的數字。
訪問控制
類方法的訪問許可權可以透過訪問控制修飾符來控制,例如 public
、private
和 protected
。
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
,關注後即可獲取最新文章推送
看完如果覺得有幫助,歡迎點贊、收藏、關注