0

public私のクラス宣言のセクションには、次のものがあります。

static float m_screenWidth;
static float m_screenHeight;

その後、クラスコンストラクターまたは他の場所で必要なものにそれらを設定できますが、それらを使用するとコンパイラーは失敗し、次のように言います。

Undefined symbols for architecture

これは、これらのメンバーにアクセスしようとする行に記載されています。クラス メソッドでは、名前でアクセスします。非メンバー関数では、className::プレフィックスを使用してアクセスします。関係ありません、彼らは楽しんでいません。何かアドバイス?

「宣言されていない」エラーが発生していないため、ある程度認識されることに注意してください。

4

2 に答える 2

4

このエラー メッセージは、コンパイラのエラー メッセージではなく、リンカのエラー メッセージです。変数の定義が見つからないことを示しています。

publicセクションでは、それらは宣言です。これらは、定義の外で一度だけ定義する必要があります。class

float className::m_screenWidth;
float className::m_screenHeight;
于 2013-01-10T14:16:15.637 に答える
2

それらをヘッダーファイルで宣言しました。また、どこかのファイルでそれらを定義する必要があります。.cpp

float MyClass::m_screenWidth;
float MyClass::m_screenHeight;

これにより、コンパイラは実際にスペースを確保し、これらの静的変数のシンボルを作成するように指示されます。

于 2013-01-10T14:16:57.257 に答える