関数のオーバーロードと関数のインライン化 関数のオーバーロードを使用すると、名前は同じでパラメーター リストが異なる複数の関数を作成し、異なる入力タイプに対応する特定のコードを作成できます。関数のインライン化は、関数コードを呼び出しポイントに直接挿入してプログラムの速度を向上させるコンパイラの最適化です。
関数のオーバーロード
関数のオーバーロードを使用すると、次の関数を使用して複数の関数を作成できます。同じ名前ですが、パラメータリストが異なります。これにより、さまざまなタイプまたは量の入力に基づいてターゲット固有のコードを作成できます。
# 構文:
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 中国語 Web サイトの他の関連記事を参照してください。