クラス定義内に静的オブジェクトを作成する必要があります。Javaでも可能ですが、C++ではエラーが発生します。
../PlaceID.h:9:43: error: invalid use of incomplete type ‘class
PlaceID’ ../PlaceID.h:3:7: error: forward declaration of ‘class
PlaceID’ ../PlaceID.h:9:43: error: invalid in-class initialization of static data
私のクラスは次のようになります。
#include <string>
class PlaceID {
public:
inline PlaceID(const std::string placeName):mPlaceName(placeName) {}
const static PlaceID OUTSIDE = PlaceID("");
private:
std::string mPlaceName;
};
このクラス内にクラスのオブジェクトを作成することは可能ですか?それが保持しなければならない前提条件は何ですか?