首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >D-构造函数上的访问修饰符实际上是做什么的?

D-构造函数上的访问修饰符实际上是做什么的?
EN

Stack Overflow用户
提问于 2017-08-16 18:40:09
回答 1查看 55关注 0票数 2

假设我有以下代码:

代码语言:javascript
复制
class Foo
{
    private this(int x){ }
}
void
main()
{
    auto f = new Foo(4);
}

令我惊讶的是,这实际上是编译出来的。我希望私有构造函数在它定义的类之外是不可用的,就像方法一样,但情况显然并非如此。语言引用甚至在构造函数部分中都没有提到访问修饰符。

因此,问题有两个:当访问修饰符应用于构造函数时(如果它做了任何事情),访问修饰符会做什么,以及如何隐藏一个ctor?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-08-16 18:51:17

构造函数上的访问修饰符与其他地方的访问修饰符完全一样.但是要记住的关键是,在D中,访问控制只适用于模块之外。同一模块中的所有内容也可以看到其内部的其他所有内容,但是私有ctor将阻止模块外的构造。

这与许多其他编程语言不同。其思想是,D模块允许您定义助手类,而不需要C++的friend特性。

票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/45720803

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档