C の静的変数への未定義の参照
C で静的変数を使用する場合、開発者はよく「静的変数への未定義の参照」というエラーに遭遇します。 。」この記事では、この問題について調査し、静的メソッドを使用しない解決策を示します。
問題:
次のコードを考えてみましょう:
class Helloworld { public: static int x; void foo(); }; void Helloworld::foo() { Helloworld::x = 10; };
This静的変数 x が非静的メソッド foo() で参照されているため、コードは「未定義参照」エラーをトリガーしますが、定義.
解決策:
この問題を解決するには、クラス定義の外側で静的メンバー変数 x の定義を提供することが不可欠です。これは次のように実現できます。
class Helloworld { public: static int x; void foo(); }; // Define the static variable outside the class int Helloworld::x = 0; void Helloworld::foo() { Helloworld::x = 10; };
初期値を 0 に指定するか、未定義のままにすると、x はゼロで初期化されます。あるいは、より適切な初期値を割り当てることもできます。
以上がC で「静的変数への未定義の参照」エラーが発生するのはなぜですか?静的メソッドを使用せずにそれを修正するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。