0

私は C++ プログラミングの初心者です。クラスの一部のメンバーを他のクラスのフレンドとして宣言できますか。つまり、クラス A に 3 つのメンバー関数があり、クラス全体を他のクラス B のフレンドとして宣言する代わりに (たとえば)、クラス A の 1 つのメンバーのみをクラス B のフレンドとして宣言できるとします。助けてください。

4

5 に答える 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

あなたに厳しいことを言うつもりはありませんが、「c ++フレンドクラス関数」をグーグルで検索するだけで見つけたものを見てください。

フレンド関数とクラス

...そして約200以上。

于 2013-02-05T04:54:03.237 に答える
-1

はい。

例として、ウィキに尋ねてください (彼らはすべてを知っています):

http://en.wikipedia.org/wiki/Friend_function

または、基本的な検索を行います...

于 2013-02-05T04:56:38.680 に答える