この定義されていない参照を外すことはできません。未定義参照?私が見ていないものはありますか? (C++、シングルトンクラス)
私はScene.hのプライベートセクションの下に次のコードを持っている:
static Scene * scene_;
の#include「Scene.hは、」シーンのヘッダの非常に最初の部分です。 cpp
これは私が現時点で受けている唯一のエラーです、任意のアイデアですか?
私は他の情報を提供します。
この定義されていない参照を外すことはできません。未定義参照?私が見ていないものはありますか? (C++、シングルトンクラス)
私はScene.hのプライベートセクションの下に次のコードを持っている:
static Scene * scene_;
の#include「Scene.hは、」シーンのヘッダの非常に最初の部分です。 cpp
これは私が現時点で受けている唯一のエラーです、任意のアイデアですか?
私は他の情報を提供します。
あなたはまた、1つのコンパイル単位(一つだけ)でそれを定義する必要があります静的メンバを宣言します。
// a.h
class A
{
static int x;
};
// a.cpp
int A::x = 0;
クラス内の変数の宣言は、メモリを予約しません、ただ(コンパイラに伝えます他のコンパイル単位から)その名前でアクセス可能な変数がどこかで定義されるようになります。
なぜScene
の代わりにScene*
を使用するのですか?基本的には「へのポインタに十分な領域を割り当てるのにstatic
を使用してください」とし、実行時にnew
というヒープ上にオブジェクトを配置します(これは決してdelete
とは限りません)。
は代わりに、単に静的を割り当て、Scene
オブジェクト初期化しています(。 - >となり)、その後
static Scene scene_;
し、それに応じてシーンにすべての参照を変更する:
scene_.addObject(&object);
これは簡単です起動するキーストロークが少なくなります。 C++では、JavaまたはC#と同じくらい頻繁にnew
は必要ありません。
申し訳ありませんが、私の読書は少しオフでした。私は私の答えを削除しました。 –