社区
C++ 语言
帖子详情
friend的用法
liming2606
2006-10-26 11:42:38
请问frien如何用
...全文
1978
8
打赏
收藏
friend的用法
请问frien如何用
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
8 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
gm_zhang
2006-10-28
打赏
举报
回复
最好不用friend
因为c++本来就是封装的
用friend破坏了c++封装性
lin_style
2006-10-27
打赏
举报
回复
mark
eplanet
2006-10-27
打赏
举报
回复
友元一般用来做一些特殊用途
例如,一个类中,有一些私有方法和属性.
但需要对另一个类开放权限(一般来说,这样的问题可以通过设计来解决),这个时候,利用友元就可以了.
直接在相关的地方写上
friend class nnn就可以了.其他的友元函数等和这个差不多.
友元函数多用来完成运算符重载.
Smile_Tiger
2006-10-27
打赏
举报
回复
那叫 “黑客员”
hziee_
2006-10-27
打赏
举报
回复
友员就是留一个后们,
需要的时候可以进去干"坏事"
lann64
2006-10-27
打赏
举报
回复
顶一下pass86(l.jay) ,可以声明其他类的成员函数为友元。
pass86
2006-10-27
打赏
举报
回复
friend友元3种
1)友元函数
2)友元类
3)友元成员函数
weijiangshanwww
2006-10-26
打赏
举报
回复
转贴:
友元可以是一个函数,该函数被称为友元函数;友元也可以是一个类,该类被称为友元类。
友元函数
友元函数的特点是能够访问类中的私有成员的非成员函数。友元函数从语法上看,它与普通函数一样,即在定义上和调用上与普通函数一样。下面举一例子说明友元函数的应用。
#include
#include
class Point
{
public:
Point(double xx, double yy) { x=xx; y=yy; }
void Getxy();
friend double Distance(Point &a, Point &b);
private:
double x, y;
};
void Point::Getxy()
{
cout<<"("<
}
double Distance(Point &a, Point &b)
{
double dx = a.x - b.x;
double dy = a.y - b.y;
return sqrt(dx*dx+dy*dy);
}
void main()
{
Point p1(3.0, 4.0), p2(6.0, 8.0);
p1.Getxy();
p2.Getxy();
double d = Distance(p1, p2);
cout<<"Distance is"<
}
说明:在该程序中的Point类中说明了一个友元函数Distance(),它在说明时前边加friend关键字,标识它不是成员函数,而是友元函数。它的定义方法与普通函数定义一样,而不同于成员函数的定义,因为它不需要指出所属的类。但是,它可以引用类中的私有成员,函数体中a.x,b.x,a.y,b.y都是类的私有成员,它们是通过对象引用的。在调用友元函数时,也是同普通函数的调用一样,不要像成员函数那样调用。本例中,p1.Getxy()和p2.Getxy()这是成员函数的调用,要用对象来表示。而Distance(p1, p2)是友元函数的调用,它直接调用,不需要对象表示,它的参数是对象。(该程序的功能是已知两点坐标,求出两点的距离。)
友元类
友元除了前面讲过的函数以外,友元还可以是类,即一个类可以作另一个类的友元。当一个类作为另一个类的友元时,这就意味着这个类的所有成员函数都是另一个类的友元函数。
C++友元(
Friend
)
用法
实例简介
相对于Java而言,友元是C++中特有的一种元素,很多教材上对其介绍的相对较少,因此初学的时候往往不能很快掌握,本文总结了友元的
用法
和一些注意的地方,供大家参考借鉴。希望能对初学C++的朋友起到一点帮助作用。 ...
概述C++中的 public protected private
friend
关键字的
用法
简要概述了C++中的 public protected private
friend
关键字的
用法
,非常不错,具有参考借鉴价值,感兴趣的朋友一起学习吧
systemd-boot 和 AOSC OS 的内核版本管理器
你的 systemd-boot 最好的朋友(用 Rust 实现)systemd-boot 和 AOSC OS 的内核版本管理器
用法
首先初始化
friend
和systemd-boot,这也会将最新的内核安装到systemd-boot的特定路径。systemd-boot-
friend
init您也可以...
meteor-react-form-for:James
Friend
的1.1.1版本的react-form-form,重新包装为Meteor
安装meteor add makalu:react-form-for
用法
阅读以获取更多信息。
frege:Frege是JVM的Haskell。 它为Java平台带来了纯函数式编程
什么是弗雷格? 2015、2016、2017年JavaOne新兴语言碗冠军 Frege是JVM的Haskell。 与任何Haskell一样,它是纯功能的,具有强大的静态类型系统,具有... 这段代码将使用常规的Java main方法编译为Hello.class和Hel
C++ 语言
64,652
社区成员
250,508
社区内容
发帖
与我相关
我的任务
C++ 语言
C++ 语言相关问题讨论,技术干货分享,前沿动态等
复制链接
扫一扫
分享
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++
技术论坛(原bbs)
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
请不要发布与C++技术无关的贴子
请不要发布与技术无关的招聘、广告的帖子
请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下
试试用AI创作助手写篇文章吧
+ 用AI写文章