标题:关于成员函数与友元点概念问题
只看楼主
uncle_k
Rank: 1
等 级:新手上路
帖 子:39
专家分:4
注 册:2008-12-19
结帖率:90%
已结贴  问题点数:0 回复次数:5 
关于成员函数与友元点概念问题
友元函数既然是在类里面声明原型,为什么却不是该类的成员函数?
搜索更多相关主题的帖子: 概念 成员 函数 
2010-08-21 10:42
lintaoyn
Rank: 11Rank: 11Rank: 11Rank: 11
等 级:小飞侠
威 望:4
帖 子:605
专家分:2489
注 册:2009-4-8
得分:0 
在C++中先有类这个概念,然后才有友元这个概念。
弄清为什么加入友元这个概念比弄清为什么友元不是声明它的类的成员函数来的好,也更能解释楼主心里的疑问。我觉得
《C++语言的设计和演化》楼主可以去看下

迭代的是人,递归的是神。
2010-08-21 10:59
最近不在
Rank: 8Rank: 8
等 级:蝙蝠侠
威 望:5
帖 子:204
专家分:842
注 册:2010-2-28
得分:10 
如果作为类的成员函数,那么只能通过对象调用该函数,而作为该类的友元,不仅具备普通函数的功能,而且可以直接访问类的内部成员。至于友元函数的声明,我觉得是如果在类定义时,该函数的定义还没出来,那么它相当于一个前向声明,并带有friend的关系。
2010-08-21 22:51
pangding
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
来 自:北京
等 级:贵宾
威 望:94
帖 子:6784
专家分:16751
注 册:2008-12-20
得分:0 
那只是为了声明一个函数是自己的友元函数,也没打算定义它。
这种声明的前面加了 friend 关键字,这个关键字就是用来干这个的。规定就是这样的,没什么道理好讲。
你再去看看成员函数的定义,说“在类内部声明的函数”附近应该还有其它定语。
2010-08-21 22:58
uncle_k
Rank: 1
等 级:新手上路
帖 子:39
专家分:4
注 册:2008-12-19
得分:0 
嗯,谢谢
2010-08-25 17:08
Union
Rank: 1
等 级:新手上路
帖 子:5
专家分:0
注 册:2010-9-2
得分:0 
我一开始也有类似的问题,但是后来就搞明白了,只要楼主弄清楚为什么C++要加入友元这个问题就自然明白。
2010-09-02 15:07



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-316390-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.113894 second(s), 8 queries.
Copyright©2004-2025, BCCN.NET, All Rights Reserved