C++ 関数のオーバーロードと関数のインライン化

WBOY
リリース: 2024-04-16 09:09:01
オリジナル
793 人が閲覧しました

関数のオーバーロードと関数のインライン化 関数のオーバーロードを使用すると、名前は同じでパラメーター リストが異なる複数の関数を作成し、異なる入力タイプに対応する特定のコードを作成できます。関数のインライン化は、関数コードを呼び出しポイントに直接挿入してプログラムの速度を向上させるコンパイラの最適化です。

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 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート