斯威夫特:C++朋友等价?

Posted

技术标签:

【中文标题】斯威夫特:C++朋友等价?【英文标题】:Swift: C++ friend Equivalent? 【发布时间】:2022-01-21 17:07:10 【问题描述】:

我的结构类似于以下:

class Foo
    class Bar ... 
    private class Baz ...  

FooBar 需要访问 Baz,但 Baz 需要对模块和导入它的其他模块保持私有。

问题:

    有什么方法可以将Baz 分享给FooBar?' 我可以使用任何其他类结构来允许所需的访问吗?

【问题讨论】:

fileprivateBaz 怎么样? @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++ 等价物

等价于 C++ 中 Java 的 IllegalArgumentException

类属性的 C++ 等价于 Matlab Abstract

C++ DWORD 的 C# 等价物是啥?

C# 中的 C++ 模板继承等价物是啥?