这是需要友元函数

因为显示器类存储的朋友,任何显示的成员使用的存储类对象可以直接访问存储的私有成员。这是一个简单的程序,显示使用上面的
1
2
3
4
5
6
7
8
9
int main()
{
    Storage cStorage(5, 6.7);
    Display cDisplay(false);
 
    cDisplay.DisplayItem(cStorage);
 
    return 0;

这个程序产生以下结果:

6.7 5

一个朋友类一些额外的注释。首先,尽管显示存储的一个朋友,显示并没有直接接触到这个指针存储对象。第二,因为显示存储的朋友,这并不意味着存储也显示一个朋友。如果你想要两类是彼此的朋友,都必须申报的其他朋友一样。最后,如果类A是B的一个朋友,和B是C的一个朋友,这并不意味着是一个朋友

当使用友元函数和类的小心,因为它允许朋友函数或类违反封装。如果类变化的细节,细节的朋友也将被迫改变。因此,限制你的朋友使用函数和类的最小。

做一个函数的一些类朋友意味着函数可以访问类的私有成员变量(尽管这个功能不是类的成员)。以上的湿度/天气的例子显示了一个例子:printweather()运用湿度和天气的私有成员(它通常无法访问,因为他们是私有的)。然而它是允许这样做的因为它已经交了一个朋友

它是强制性的声明一个函数(这是需要友元函数)在类本身?

假设有一个类命名的乐趣。它有一些私人和公共元素。现在我想要一个函数调用一些有乐趣的朋友。因此,它是要宣布一些有趣的私人或公共部门?或者可以声明和定义它完全外部类前缀的朋友。


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值