静的メソッドからクラス Foo の最初に作成されたインスタンスを返したい (すべてのプログラムのライフサイクル中に作成されるインスタンスは実際には 1 つです)。サンプルコード:
//.h
#pragma once
class Foo
{
static Foo* _firstInstance;
public:
Foo();
~Foo();
static Foo* GetFirstFoo();
};
//.cpp
#include "stdafx.h"
#include "Foo.h"
Foo::Foo()
{
_firstInstance = this;
}
Foo::~Foo()
{
}
Foo* Foo::GetFirstFoo()
{
return _firstInstance;
}
しかし、次のエラーが発生しました:
Error 1 error LNK2001: unresolved external symbol "private: static class Foo * Foo::_firstInstance" (?_firstInstance@Foo@@0PAV1@A) c:\Users\Brans\documents\visual studio 2013\Projects\testSt\testSt\Foo.obj testSt
なにが問題ですか?私はC ++の初心者ですが、静的メソッドからクラスインスタンスコンストラクターを問題なく作成したことを覚えています。