gpt4 book ai didi

c++ - 在什么情况下应该将成员函数声明为友元?

转载 作者:塔克拉玛干 更新时间:2023-11-03 00:32:29 24 4
gpt4 key购买 nike

在什么样的情况下我们会将成员函数声明为“友元函数”?...违背 OOP 的“封装”核心概念之一的“友元函数”的确切目的是什么?

最佳答案

出于与使用友元类相同的原因,您可以使用友元函数,但基于成员函数(而不是整个类)。 this thread 中有一些很好的解释.

虽然友元函数和类确实违反了封装,但它们在某些情况下还是很有用的。例如,您可能希望允许测试工具访问类内部以允许您进行白盒测试。您可以打开一个特定的函数来访问测试工具所需的内部结构,而不是向测试工具开放整个类。虽然这仍然违反封装,但它比打开整个类的风险更小。

另见 this article有关友元类和函数的更多信息。

关于c++ - 在什么情况下应该将成员函数声明为友元?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/572685/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com