C++如何将一个函数声明为2个类的友元函数

比如定义了2个类,两个类中都有相同的一个数据成员,将一个函数分别声明为这两个类的友元函数,在main()中调用这个函数计算这两个类中这个相同数据成员的和... 比如定义了2个类,两个类中都有相同的一个数据成员,将一个函数分别声明为这两个类的友元函数,在main()中调用这个函数计算这两个类中这个相同数据成员的和 展开
 我来答
风若远去何人留
推荐于2016-07-29 · 知道合伙人互联网行家
风若远去何人留
知道合伙人互联网行家
采纳数:20412 获赞数:450126
专业C/C++软件开发

向TA提问 私信TA
展开全部

只要在两个要声明的类中,分别将该函数声明为友元函数即可。

C++对友元函数属于几个类并没有限制,只要在对应类中声明为友元,则该函数即为此类的友元函数。

参考代码如下:

声明函数void test();为类A和B的友元函数。

class A
{
    private:
        int a;
    friend void test();
};
class B
{
    private:
        int a;
    friend void test();
};

这时 test函数同时为A和B的友元函数。

有你的晴天12138
推荐于2017-11-26 · TA获得超过1001个赞
知道小有建树答主
回答量:305
采纳率:80%
帮助的人:210万
展开全部
#include <iostream.h>

void Test();

class A
{
public:
    void SetData(int a) { data = a; }
private:
    int    data;
    
friend void Test();
};

class B
{
public:
    void SetData(int b) { data = b; }
private:
    int    data;
friend void Test();
};

void Test()
{
    A a;
    B b;
    
    a.SetData(10);
    b.SetData(20);
    
    int c = a.data + b.data;
    cout << "c = " << c << endl;
}

int main()
{
    Test();
    return 0;
}

代码没测试过

本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式