//////ヘッダ///////////
class C_Sin{
public:
static C_Sin* get_Sin_instance();
private:
C_Sin();//コンストラクタ[]//「{}」によってどこかに定義の存在を明示しないと動かない。
C_Sin(const C_Sin&);//コピーコンストラクタ
C_Sin& operator=(const C_Sin);//代入
};
////////////cpp.////////////////
C_Sin* C_Sin::get_Sin_instance(){
static C_Sin Sin_instance;
C_Sin::C_Sin();
return &Sin_instance;
}
//////////////////main//////////////////////////
C_Sin*Singleton_Instance = C_Sin::get_Sin_instance();
動作は保障しません。前回同様。
FPS管理で取り入れたつもりですが、どうなんでしょうね。
使ってみると思いのほか面倒でした。初めてだからか・・・
ポインタが絡むと分かりにくいので苦手ですね。
コメントアウトで言っていますが、コンストラクタに{}を付けないとエラーでした。
付けるなら宣言時でも定義時でも大丈夫なようです。ここに書いてはいませんが
定義で付けました。 定義ではなく実装と言うべきかあやふやです。どっちでも当たりと思いたい。
それと「どうして返値なんか要るんだ?」なんて思ってましたが
無いとインスタンスが一つも作れないみたいですね。
等号で結んでインスタンス作ると言うのもあまり見ないです。
これは代入でもコピーコンストラクタでもなく、ポインタのはず。
staticとポインタを使うことで一つしか作れないようになってます。
いやシングルトン部分は上手くいった。しかしながら
それ以外の部分が上手くいかないのでは;
今日中に何とかしたいところではあります。
classをやってるとVC++が如何に便利かわかりますね。VC++すばらしい。
バグで無いのに意図せぬ挙動。
クラスが増えるとどこが原因なのか、エラーで教えてもらっても
分からなかったりするというのに、これはまずい。
また見直します。