2类可以共享朋友功能吗?

use*_*974 7 c++ friend-function

今天我对朋友的功能有疑问.两个班可以有相同的朋友功能吗?说出friend void f1(); 在A类和B类中声明的例子 .这可能吗?如果是这样,函数f1()可以访问两个类的成员吗?

ilu*_*e07 16

一个例子可以解释这个:

class B;                   //defined later

void add(A,B);

class A{
    private:
    int a;
    public:
    A(){ 
        a = 100;
    }
    friend void add(A,B);
};   

class B{
    private:
    int b;
    public:
    B(){ 
        b = 100;
    }
    friend void add(A,B);
};

void add (A Aobj, B Bobj){
    cout << (Aobj.a + Bobj.b);
}

main(){
    A A1;
    B B1;
    add(A1,B1);
    return 0;
}
Run Code Online (Sandbox Code Playgroud)

希望这可以帮助!


Pau*_*ans 1

friends对于什么函数可以或不能是's没有任何限制class,所以是的,这没有问题。