Pra*_*. S 5 c++ function friend
在什么样的情况下我们会将成员函数声明为"朋友函数"?具体目的是什么'朋友函数'违背了OOP服务的'封装'的核心概念之一?
Leo*_*Hat 2
使用友元函数的原因与使用友元类的原因相同,但基于成员函数(而不是整个类)。这个线程中有一些很好的解释。
虽然友元函数和类确实违反了封装,但它们在某些情况下可能很有用。例如,您可能希望允许测试工具访问类内部,以允许您进行白盒测试。您可以打开一个特定的函数来访问测试工具所需的内部结构,而不是向测试工具开放整个类。虽然这仍然违反了封装性,但它比开放整个类的风险要小。
另请参阅本文以获取有关友元类和函数的更多信息。
归档时间:
17 年,3 月 前
查看次数:
3525 次
最近记录:
16 年,5 月 前