c++中可不可以在一个类中访问另一个类的私有成员?

 我来答
刺任芹O
2022-11-16 · TA获得超过6.2万个赞
知道顶级答主
回答量:38.7万
采纳率:99%
帮助的人:9052万
展开全部

c++中可以在一个类中访问另一个类的私有成员,通过定义友元类即可实现。

class node

{

public:

node(int data = 0) :mdata(data), mpnext(NULL){}

private:

int mdata;

node *mpnext;

friend class link;

};

友元类本质:

C++提高破坏数据封装和隐藏的一种机制,将一个类A声明为另一个类B的友元类,这样B就可以使用A的私有数据。

一般,为了保证数据的完整性,以及数据的封装和隐藏原则,建议不用友元。

友元类的特点:友元是单一的,不能传递

扩展资料

友元(frend)机制允许一个类将对其非公有成员的访问权授予指定的函数或者类,友元的声明以friend开始,它只能出现在类定义的内部,友元声明可以出现在类中的任何地方。

友元不是授予友元关系的那个类的成员,所以它们不受其声明出现部分的访问控制影响。通常,将友元声明成组地放在类定义的开始或结尾是个好主意。

使用友元类优点:

1、可以灵活地实现需要访问若干类的私有或受保护的成员才能完成的任务;

2、便于与其他不支持类概念的语言(如C语言、汇编等)进行混合编程;

3、通过使用友元函数重载可以更自然地使用C++语言的IO流库。

参考资料来源:百度百科—友元类

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

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式