ホームページ > バックエンド開発 > C++ > C++ 関数ポインターがコードのリファクタリングを簡素化する方法を発見する

C++ 関数ポインターがコードのリファクタリングを簡素化する方法を発見する

WBOY
リリース: 2024-06-04 21:42:59
オリジナル
1104 人が閲覧しました

関数ポインターは C++ の強力な機能であり、関数をパラメーターとして渡すことができ、コード再構築の柔軟性が向上します。構文的には、関数ポインターはアスタリスクの代わりに山括弧を使用して宣言されます。アドレス演算子 & を使用して関数ポインターを作成し、配列を使用して関数ポインターを格納すると、必要に応じて関数の動作を動的に調整し、コード構造を簡素化し、コードの適応性を向上させることができます。

探索 C++ 函数指针如何简化代码重构

C++ 関数ポインターを探索する: コード リファクタリングの強力なヘルパー

関数ポインターは、関数を他の関数のパラメーターとして渡すことを可能にする C++ の強力な機能です。これにより、必要に応じて関数の動作を動的に調整できるため、コードのリファクタリングに関して大きな柔軟性が得られます。

関数ポインタの構文

関数ポインタの構文は通常の関数ポインタと非常に似ていますが、アスタリスク * の代わりに山括弧 <> を使用します。例:

using FunctionPtr = void(int);
ログイン後にコピー

上記の宣言は、整数パラメーターを受け入れて void を返す関数へのポインター型を作成します。

関数ポインターの使用法

関数ポインターを作成するには、アドレス演算子 & を使用できます。たとえば、print_number 関数へのポインターを作成するには: print_number 函数的指针:

int print_number(int n) {
  std::cout << n << std::endl;
}

int main() {
  FunctionPtr ptr = &print_number;
}
ログイン後にコピー

现在,我们可以使用 ptr 就像使用普通函数一样:

ptr(10);  // 输出:10
ログイン後にコピー

代码重构示例

函数指针真正发挥作用的地方是在代码重构中。假设我们有一个 calculate 函数,它可以计算使用不同公式的数值:

double calculate(double a, double b, int formula_id) {
  switch (formula_id) {
    case 1:
      return a + b;
    case 2:
      return a - b;
    case 3:
      return a * b;
    default:
      return 0;
  }
}
ログイン後にコピー

如果我们想要添加一个新的公式,我们需要修改 calculate 函数。使用函数指针,我们可以消除这种需要:

using CalculatePtr = double(double, double);

// 创建一个包含所有公式的函数指针数组
std::array<CalculatePtr, 4> formulas = {
    [](double a, double b) { return a + b; },
    [](double a, double b) { return a - b; },
    [](double a, double b) { return a * b; },
    [](double a, double b) { return a / b; }  // 新添加的公式
};

double calculate(double a, double b, int formula_id) {
  if (formula_id < 0 || formula_id >= formulas.size()) {
    return 0;
  }
  return formulas[formula_id](a, b);
}
ログイン後にコピー

现在,我们可以通过向 formulas 数组添加新的函数指针来轻松添加新的公式,无需更改 calculaterrreee

これで、通常の関数と同じように ptr を使用できます:

rrreeeコード リファクタリングの例

関数ポインターが実際に行うこと場所はコードのリファクタリングです。さまざまな数式を使用して値を計算できる calculate 関数があるとします。 🎜rrreee🎜 新しい数式を追加したい場合は、calculate 関数を変更する必要があります。関数ポインターを使用すると、この必要性を排除できます: 🎜rrreee🎜 これで、 calculate 関数を変更せずに、新しい関数ポインターを formulas 配列に追加することで、新しい数式を簡単に追加できるようになりました。 🎜🎜🎜結論🎜🎜🎜関数ポインターは、C++ コードのリファクタリングにおいて重要な役割を果たします。これらを使用すると、関数をパラメータとして簡単に渡すことができ、動的にスケーラブルで保守性の高いコードを作成できます。関数ポインターを活用することで、コード構造を簡素化し、将来の変更に対するコードの復元力を高めることができます。 🎜

以上がC++ 関数ポインターがコードのリファクタリングを簡素化する方法を発見するの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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