私のコードの何が問題になっていますか?
以下のコードをGNUG++環境でコンパイルしようとすると、次のエラーが発生します。
friend2.cpp:30:エラー:不完全な型'structtwo'の使用が無効です friend2.cpp:5:エラー:「structtwo」の前方宣言 friend2.cpp:メンバー関数内'int two :: accessboth(one)': friend2.cpp:24:エラー:'int one::data1'はプライベートです friend2.cpp:55:エラー:このコンテキスト内
#include <iostream>
using namespace std;
class two;
class one
{
private:
int data1;
public:
one()
{
data1 = 100;
}
friend int two::accessboth(one a);
};
class two
{
private:
int data2;
public:
two()
{
data2 = 200;
}
int accessboth(one a);
};
int two::accessboth(one a)
{
return (a.data1 + (*this).data2);
}
int main()
{
one a;
two b;
cout << b.accessboth(a);
return 0;
}