C の静的変数への未定義の参照
クラスの非静的メソッド内の静的変数にアクセスしようとすると、開発者は、 「未定義の参照」エラーが発生します。この問題を解決するには、クラス宣言の外で静的変数の定義を提供することが重要です。
提供されたコード スニペット内:
class Helloworld{ public: static int x; void foo(); }; void Helloworld::foo(){ Helloworld::x = 10; };
静的変数 x はクラス宣言内で宣言されています。クラスですが定義がありません。これに対処するには、クラス定義の外側に次の行を追加します。
int Helloworld::x;
これにより、x の定義が提供され、未定義の参照エラーが発生することなく foo() メソッドがそれにアクセスできるようになります。静的変数のデフォルト値はゼロであるため、必要に応じて明示的な初期化子を提供できることに注意することが重要です。
これらの手順に従うことで、開発者は非静的メソッド内で静的変数に効果的にアクセスでき、適切な値が保証されます。コードの機能と未定義の参照エラーの回避。
以上がC の非静的メソッドで静的変数にアクセスすると「未定義の参照」エラーが発生するのはなぜですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。