私は C++ プログラミングの初心者です。クラスの一部のメンバーを他のクラスのフレンドとして宣言できますか。つまり、クラス A に 3 つのメンバー関数があり、クラス全体を他のクラス B のフレンドとして宣言する代わりに (たとえば)、クラス A の 1 つのメンバーのみをクラス B のフレンドとして宣言できるとします。助けてください。
5 に答える
2
はい:
class A
{
public:
void func_1();
void func_2();
void func_3();
};
class B
{
friend void A::fund_2();
void plop(); // only A::func_2() can call this function
};
于 2013-02-05T06:02:30.917 に答える
1
フレンド クラスを宣言すると、フレンド クラスのすべてのメンバー関数は、フレンド クラスが宣言されたクラスのフレンドになります。ソース
于 2013-02-05T04:52:46.143 に答える
1
はい、単一のメンバー関数を別のクラスのフレンドとして宣言できます。
オンラインサンプル:
#include<iostream>
class Myclass;
class Otherclass
{
public:
void doSomething(Myclass &obj);
};
class Myclass
{
int i;
friend void Otherclass::doSomething(Myclass &obj);
};
void Otherclass::doSomething(Myclass &obj)
{
obj.i = 10;
std::cout<<obj.i;
}
int main()
{
Myclass obj;
Otherclass obj2;
obj2.doSomething(obj);
return 0;
}
于 2013-02-05T04:52:49.857 に答える
1
于 2013-02-05T04:54:03.237 に答える
-1
はい。
例として、ウィキに尋ねてください (彼らはすべてを知っています):
http://en.wikipedia.org/wiki/Friend_function
または、基本的な検索を行います...
于 2013-02-05T04:56:38.680 に答える