注册 登录
编程论坛 C++教室

关于成员函数与友元点概念问题

uncle_k 发布于 2010-08-21 10:42, 635 次点击
友元函数既然是在类里面声明原型,为什么却不是该类的成员函数?
5 回复
#2
lintaoyn2010-08-21 10:59
在C++中先有类这个概念,然后才有友元这个概念。
弄清为什么加入友元这个概念比弄清为什么友元不是声明它的类的成员函数来的好,也更能解释楼主心里的疑问。我觉得
《C++语言的设计和演化》楼主可以去看下
#3
最近不在2010-08-21 22:51
如果作为类的成员函数,那么只能通过对象调用该函数,而作为该类的友元,不仅具备普通函数的功能,而且可以直接访问类的内部成员。至于友元函数的声明,我觉得是如果在类定义时,该函数的定义还没出来,那么它相当于一个前向声明,并带有friend的关系。
#4
pangding2010-08-21 22:58
那只是为了声明一个函数是自己的友元函数,也没打算定义它。
这种声明的前面加了 friend 关键字,这个关键字就是用来干这个的。规定就是这样的,没什么道理好讲。
你再去看看成员函数的定义,说“在类内部声明的函数”附近应该还有其它定语。
#5
uncle_k2010-08-25 17:08
嗯,谢谢
#6
Union2010-09-02 15:07
我一开始也有类似的问题,但是后来就搞明白了,只要楼主弄清楚为什么C++要加入友元这个问题就自然明白。
1