c++,フレンドクラスの使おうとすると認識できない型です、というエラー出る。原因
フレンドクラスでなぜ前方宣言をしてるのに認識できない型ですとコンパイルエラー出るのか教えてほしいです。ちなみにコメント部の部分にclass fri{}コードを移動させるとコンパイル成功します。
class base;
class fri {
public:
fri() { }
void f(base& x) { cout << x.t; }
};
class fri;
class base {
friend class fri;
private:
int t;
protected:
enum tmp { e_a , e_b, e_c };
public:
//void fri::f();
base(int x) { t = x; }
~base(){ }
void f()
{
int x = e_a;
cout <<"x:"<< x;
}
};
//////////ここに書く
int main() {
base b(100);
fri x;
x.f(b);
_getch();
return 0;
}