首頁  >  文章  >  後端開發  >  C++ 函式重載與函式內聯

C++ 函式重載與函式內聯

WBOY
WBOY原創
2024-04-16 09:09:01740瀏覽

函數重載和函數內嵌函數重載允許使用相同名稱建立多個函數,但參數清單不同,針對不同輸入類型編寫特定程式碼。函數內聯則是一種編譯器最佳化,將函數程式碼直接插入呼叫點,提高程式速度。

C++ 函数重载和函数内联

C 函數重載和函數內聯

#函數重載

函數重載可讓您創建具有相同名稱但具有不同參數清單的多個函數。這使您可以根據輸入的不同類型或數量編寫特定於目標的程式碼。

語法:

returnType functionName(parameter1, parameter2, ...);
returnType functionName(parameter1, parameter2, ..., parameterN);

範例:

int sum(int a, int b) { return a + b; }
double sum(double a, double b) { return a + b; }

函數內聯

函數內聯是一種將函數程式碼直接插入呼叫點(而不是透過函式呼叫跳到函數)的編譯器最佳化技術。這可以提高程式的速度,特別是在函數呼叫頻繁的情況下。

語法:

對於函數:

inline returnType functionName(parameter1, parameter2, ...);

#對成員函數:

inline returnType className::memberFunctionName(parameter1, parameter2, ...);

實戰案例:

假設您要計算不同形狀的面積。您可以使用函數重載來針對每個形狀建立特定的面積計算函數。

範例:

#include <iostream>

using namespace std;

double area(int radius) {
  return 3.14 * radius * radius;
}

double area(int length, int width) {
  return length * width;
}

double area(int base, int height) {
  return 0.5 * base * height;
}

int main() {
  cout << "圆的面积: " << area(5) << endl;
  cout << "矩形的面积: " << area(4, 7) << endl;
  cout << "三角形的面积: " << area(3, 6) << endl;
}

透過使用函數內聯,可以進一步提高程式的效率:

#include <iostream>

using namespace std;

inline double area(int radius) {
  return 3.14 * radius * radius;
}

inline double area(int length, int width) {
  return length * width;
}

inline double area(int base, int height) {
  return 0.5 * base * height;
}

int main() {
  cout << "圆的面积: " << area(5) << endl;
  cout << "矩形的面积: " << area(4, 7) << endl;
  cout << "三角形的面积: " << area(3, 6) << endl;
}

以上是C++ 函式重載與函式內聯的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn