ホームページ > バックエンド開発 > C++ > C の非静的メソッドで静的変数にアクセスすると「未定義の参照」エラーが発生するのはなぜですか?

C の非静的メソッドで静的変数にアクセスすると「未定義の参照」エラーが発生するのはなぜですか?

DDD
リリース: 2024-12-15 15:36:11
オリジナル
331 人が閲覧しました

Why Do I Get an

C の静的変数への未定義の参照

クラスの非静的メソッド内の静的変数にアクセスしようとすると、開発者は、 「未定義の参照」エラーが発生します。この問題を解決するには、クラス宣言の外で静的変数の定義を提供することが重要です。

提供されたコード スニペット内:

class Helloworld{
  public:
     static int x;
     void foo();
};

void Helloworld::foo(){
     Helloworld::x = 10;
};
ログイン後にコピー

静的変数 x はクラス宣言内で宣言されています。クラスですが定義がありません。これに対処するには、クラス定義の外側に次の行を追加します。

int Helloworld::x;
ログイン後にコピー

これにより、x の定義が提供され、未定義の参照エラーが発生することなく foo() メソッドがそれにアクセスできるようになります。静的変数のデフォルト値はゼロであるため、必要に応じて明示的な初期化子を提供できることに注意することが重要です。

これらの手順に従うことで、開発者は非静的メソッド内で静的変数に効果的にアクセスでき、適切な値が保証されます。コードの機能と未定義の参照エラーの回避。

以上がC の非静的メソッドで静的変数にアクセスすると「未定義の参照」エラーが発生するのはなぜですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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