ホームページ  >  記事  >  バックエンド開発  >  C++ の静的関数とグローバル関数の違いは何ですか?

C++ の静的関数とグローバル関数の違いは何ですか?

WBOY
WBOYオリジナル
2024-04-17 08:54:011098ブラウズ

静的関数は、クラス インスタンスなしでクラス内でのみ表示され、ツール クラスのメソッドに使用されます。一方、グローバル関数は、クラスやインスタンスなしでプログラム全体内で表示され、独立した関数に使用されます。

C++ 静态函数与全局函数有什么区别?

#C の静的関数とグローバル関数の違い

はじめにC では、static関数とグローバル関数は、機能とスコープが異なる 2 種類の関数です。それらの違いを理解することは、明確で保守しやすいコードを作成するために重要です。

静的関数静的関数は通常のメンバー関数と似ていますが、クラスの非静的メンバー データにはアクセスできません。これらは通常、クラスの状態へのアクセスを必要としないユーティリティ クラス メソッドを実装するために使用されます。

宣言と定義

class MyClass {
public:
    static int add(int a, int b) { return a + b; }
};

スコープと呼び出し可能性静的関数は、クラスのスコープ内でのみ表示されます。これは、クラスのインスタンスを作成せずに、クラス名によって直接呼び出すことができることを意味します。

int result = MyClass::add(10, 20); // 输出 30

グローバル関数グローバル関数はどのクラスにも属しません。これらはプログラムの範囲全体で表示されます。これらは、I/O 操作や数学的操作など、クラスに依存しない機能を定義するために使用されます。

宣言と定義

int add(int a, int b) { return a + b; }

スコープと呼び出し可能性グローバル関数は、プログラム内のどこからでもアクセスして呼び出すことができます。

int result = add(10, 20); // 输出 30

差異表

機能静的関数グローバル関数可視性クラスに限定プログラム範囲アクセシビリティ クラス インスタンスは必要ありませんクラスやインスタンスは必要ありませんスコープクラス内プログラム全体目的ツール クラスのメソッド独立した機能

実際のケース

例 1: 静的関数 面積を計算する静的
calculateArea 関数を含む Math クラスを作成します。円。

class Math {
public:
    static double calculateArea(double radius) { return (3.14 * radius * radius); }
};

呼び出し:

double area = Math::calculateArea(5); // 输出 78.5

例 2: グローバル関数
displayMessage グローバル関数、この関数を定義します。渡されたメッセージを出力します。

void displayMessage(const string& message) {
  cout << message << endl;
}

Call:

displayMessage("Hello world!"); // 输出 "Hello world!"

結論静的関数とグローバル関数の違いを理解することは、明確で保守可能な C コードを作成するために不可欠です。重要です。静的関数はクラス内のユーティリティ クラス メソッドに使用され、グローバル関数はプログラム スコープ内で使用できる独立した機能に使用されます。

以上がC++ の静的関数とグローバル関数の違いは何ですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。