2014年02月17日

[Cocos2d-x] C++で忘れがちなこと

Javaをやってた時間が長いので、よく忘れてしまうのです。
staticなメンバ変数の使い方。

Hoge.h
class Hoge {
public:
static Hoge *getInstance();
private:
Hoge() {};
static Hoge *instance;
};

Hoge.cpp
Hoge *Hoge::getInstance() {
if (!instance) {
instance = new Hoge();
}
return instance;
}

こんなコードを書くとエラーになりますよね。
Hoge.cppに
Hoge *Hoge::instance;

の1行が必要です。
エラーが出てstaticなメンバ変数が原因だということがわかっても、毎度のようにしばらく解決できないことがあるので、今度こそ忘れないようにとメモしておきます。
posted by t2low at 22:00| Cocos2d-x