C ++的好友vs公众

时间:2015-11-18 22:48:13

标签: c++ public friend

在课堂上宣布的朋友和公共职能之间的区别是什么?当我们可以将朋友功能公开并具有相同的访问权限时,使用朋友功能的重点是什么?

3 个答案:

答案 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 - 任何类都可以引用该字段或调用该方法。

如果这有帮助,请投票赞成&标记为“已接受”