ホームページ > バックエンド開発 > C++ > 「WindowsTimer::_frequency への未定義の参照」が発生する理由とその修正方法

「WindowsTimer::_frequency への未定義の参照」が発生する理由とその修正方法

Patricia Arquette
リリース: 2024-12-25 14:21:10
オリジナル
270 人が閲覧しました

Why Does

静的メンバーへの未定義の参照

このエラーは、コンパイラが静的メンバー変数の定義を見つけられない場合に発生します。この場合、これは WindowsTimer クラスの静的メンバー変数 _frequency に関係します。

コードの理解

提示されるコードは次のとおりです:

class WindowsTimer {
public:
  WindowsTimer() {
    _frequency.QuadPart = 0ull;
  }
private:
  static LARGE_INTEGER _frequency;
};
ログイン後にコピー

ここで、_frequency は LARGE_INTEGER 型の静的メンバー変数であり、宣言されていますが宣言されていません

エラーの解決

エラー メッセージ「WindowsTimer::_frequency への未定義の参照」は、コンパイラが _frequency の定義を見つけられないことを示します。静的メンバー変数は、クラス宣言の外で、通常は実装 (.cpp) ファイル内で定義する必要があります。

エラーを解決するには、次の定義を .cpp ファイルに追加します:

LARGE_INTEGER WindowsTimer::_frequency;
ログイン後にコピー

これにより、WindowsTimer にリンクされる _frequency という名前の LARGE_INTEGER 型のグローバル変数が作成されます。 class.

他の変更が機能しなかった理由

  • _frequency を _frequency.QuadPart に変更すると、LARGE_INTEGER 構造体の QuadPart メンバーが定義されるだけで、定義されません。 _frequency 自体。
  • 変更中_frequency を static LARGE_INTEGER _frequency.QuadPart にすると、_frequency を LARGE_INTEGER.QuadPart 型の静的変数として再定義しようとしますが、これは正しくありません。

以上が「WindowsTimer::_frequency への未定義の参照」が発生する理由とその修正方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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