友元函数在类的内部定义,在类的外部声明对吗?

 我来答
帐号已注销
2020-11-10 · TA获得超过77.1万个赞
知道小有建树答主
回答量:4168
采纳率:93%
帮助的人:165万
展开全部

想让某函数能访问某类的私有成员的时候,把该函数声明为友元,声明方式是在被访问的类声明里声明该函数。

必须在类内部声明,在类外部定义。原因如下:在内部定义函数,要用到其对象,此刻必须定义完整的类,但是类完整定义必须在右花括号出现后,配伍基故此刻会编译出错;同时还需要类先定义,再定义友元函数,原因如上。

扩展资料:

假设f是想正确声明的函数,c是和它相关的类:虚函数必须是成员橘凳函数。如果f必须是虚函数,就让它成为c的成员培谨函数。operator>>;和operator<<;决不能是成员函数。如果f是operator>>;或operator<<;,让f成为非成员函数。如果f还需要访问c的非公有成员,让f成为c的友元函数。

只有非成员函数对最左边的参数进行类型转换。如果f需要对最左边的参数进行类型转换,让f成为非成员函数。如果f还需要访问c的非公有成员,让f成为c的友元函数。

参考资料来源:百度百科-友元函数

新泥称
2014-06-19 · TA获得超过339个赞
知道答主
回答量:216
采纳率:75%
帮助的人:24.5万
展开全部
换换思考方式, 想让某函数能访空棚逗问某类的私有成员的时候! 把该函和握数声明斗卖为友元. 声明方式是在被访问的类声明里声明该函数,
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式