在课堂上宣布的朋友和公共职能之间的区别是什么?当我们可以将朋友功能公开并具有相同的访问权限时,使用朋友功能的重点是什么?
答案 0 :(得分:5)
public
是指类成员函数的访问级别。 成员功能可以是public, protected or private
。
friend
指的是非会员功能。声明函数friend
允许非成员函数访问类“private
数据。
答案 1 :(得分:1)
区别在于public
成员函数是具有隐式this
参数的成员函数,而friend
函数是可以使用private
的非成员函数。 }和protected
班级成员。
您通常会编写一个friend
函数来处理类对象作为第二个参数:构造函数foo::foo( const bar& x )
需要查看新的内部结构foo
及其来源x
将是public
的{{1}}成员和foo
的成员。另一个常见的习惯用法是,如果您希望能够将friend
添加到(例如)foo
,程序员可以期望加法是可交换的,并且int
等表达式可以正常工作。将1 + foo() + 1
作为第二个参数的版本将被声明为foo
,以便它可以使用其第二个参数的内部。
答案 2 :(得分:0)
C ++中的朋友类可以访问"私有"和#34;受保护"将其声明为朋友的类的成员。
public - 任何类都可以引用该字段或调用该方法。
如果这有帮助,请投票赞成&标记为“已接受”