斯威夫特:C++朋友等价?
Posted
技术标签:
【中文标题】斯威夫特:C++朋友等价?【英文标题】:Swift: C++ friend Equivalent? 【发布时间】:2022-01-21 17:07:10 【问题描述】:我的结构类似于以下:
class Foo
class Bar ...
private class Baz ...
Foo
和 Bar
需要访问 Baz
,但 Baz
需要对模块和导入它的其他模块保持私有。
问题:
-
有什么方法可以将
Baz
分享给Foo
和Bar
?'
我可以使用任何其他类结构来允许所需的访问吗?
【问题讨论】:
fileprivate
对 Baz
怎么样?
@imike 我从未听说过fileprivate
。谢谢!您可以发表您的评论作为答案...
老实说,friend
一开始在 C++ 中是非常不受欢迎的。它只是增加了复杂性和刚性,并没有太多“真正的好处”
【参考方案1】:
您不需要嵌套类来实现这一点。
class Foo
// entire module can access
class Bar
// entire module can access
private class Baz
// only objects in this file can access
但是,如果您想嵌套类型,则可以使用fileprivate
。
class Foo
class Bar
fileprivate class Baz
【讨论】:
以上是关于斯威夫特:C++朋友等价?的主要内容,如果未能解决你的问题,请参考以下文章
Linux 下 AutoResetEvent 的 C++ 等价物是啥?
pyQT slot decorator 啥是 C++ 等价物