前方宣言

現在、趣味でWinのソフトを作るためにC++を使っているのだけれど、C++ってほんとめんどい。
特にめんどいのが、include。自分の場合、なぜか循環参照になることが多くて、それでよくエラーが出る。
だから、適当に前方宣言をして、それからいろいろやったりするのだけれど、なぜかそれでもうまくいかない。

//Moke.h
class Hoge;
class Moke{
private:
    Hoge _hoge;
};
//Hoge.h
#include "Moke.h"
class Hoge{
public:
    void set(Moke* moke){ _moke = moke; }
private:
    Moke* _moke;
};

これ、エラーが出ます(;´Д`)
知らなかったんですが、前方宣言では実体は作れないんですね……。
なので、includeしてる部分と、前方宣言している部分を入れ替えればうまく動きます。


というか、なんでこんなプログラムと関係が無い部分で時間をロスせにゃならんのだヽ(`Д´)ノ
C++なんて嫌いだ(;つД`)
……とは言っても、C#とかD言語とかの新しい言語ってまだ使ったこと無いので、結局C++しか無い訳なんですが(;´Д`)


stdafx.hに全部のクラスを前方宣言してやれば、この苦痛もましになるかな……。
OOP的には、どうかとは思いますが(;´Д`)