C++的友元类为什么要声明在public部分?

如图。ServerSocket类需要直接访问Socket类的私有成员。为什么友元类要声明在Socket的public部分?能不能声明在别的部分?classSocket{能... 如图。ServerSocket类需要直接访问Socket类的私有成员。为什么友元类要声明在Socket的public部分?能不能声明在别的部分?
class Socket
{
能不能声明在这里?
public:
protected:
以及声明在这里?
private:
还有这里?
}
展开
 我来答
千锋教育
2016-01-02 · 做真实的自己 用良心做教育
千锋教育
千锋教育专注HTML5大前端、JavaEE、Python、人工智能、UI&UE、云计算、全栈软件测试、大数据、物联网+嵌入式、Unity游戏开发、网络安全、互联网营销、Go语言等培训教育。
向TA提问
展开全部
首先,友元是一种定义在类外部的普通函数或类,但它需要在类体内进行说明,为了与该类的成员函数加以区别,在说明时前面加以关键字friend。友元不是成员函数,但是它可以访问类中的私有成员。
所以,友元声明只能出现在类定义中。因为友元不是授权类的成员,所以它不受其所在类的声明区域public private 和protected 的影响。
White_MouseYBZ
2015-10-26 · TA获得超过4万个赞
知道大有可为答主
回答量:2.1万
采纳率:82%
帮助的人:6688万
展开全部
无论在哪种性质的板块里声明都一样,因为"友元"不是类的成员,所以没有公有、私有、保护之分,只要在类里声明了就成了这个类的“朋友”,就可以访问这个类的公有、保护和私有成员!
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
月下忆娇娘
2014-06-28 · TA获得超过326个赞
知道小有建树答主
回答量:442
采纳率:100%
帮助的人:355万
展开全部
友元函数和友元类
声明在哪儿都是一样的。
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式