私は C++ の初心者です。フレンド関数の使用を実装する簡単なプログラムを作成しました。コードは次のとおりです。
#include<iostream>
using namespace std;
class one
{
private:
int age;
public:
one()
{
age=1;
}
void setData(int num)
{
age=num;
}
friend int returnOne()
{
return age;
}
};
class two
{
private:
int roll;
public:
two()
{
roll=0;
}
void setData(int num)
{
roll=num;
}
friend int returnTwo()
{
return roll;
}
};
int main()
{
one a;
two b;
cout<<a.returnOne()<<endl<<b.returnTwo()<<endl;
}
C++ で次のエラーが発生します。
friend.cpp: In function ‘int returnOne()’:
friend.cpp:8:6: error: invalid use of non-static data member ‘one::age’
friend.cpp:20:9: error: from this location
friend.cpp: In function ‘int returnTwo()’:
friend.cpp:27:6: error: invalid use of non-static data member ‘two::roll’
friend.cpp:39:9: error: from this location
friend.cpp: In function ‘int main()’:
friend.cpp:47:10: error: ‘class one’ has no member named ‘returnOne’
friend.cpp:47:31: error: ‘class two’ has no member named ‘returnTwo’
EDIT Thanks.It は問題を解決しました。
private
しかし、それは私を別の質問に導きます。現在、どのクラスまたは関数も単にフレンド関数を使用してプライベートデータメンバーにアクセスできるため、フレンドキーワードは使用の目的を危うくしているのではないでしょうか。データ メンバーのpublic
代わりにprivate
.Whats を使用する際の特別な点はprivate
何ですか?