【问题标题】:How do I declare a private class member in D?如何在 D 中声明私有类成员?
【发布时间】:2014-08-25 00:22:05
【问题描述】:

这个程序将回显“C”。我如何禁止这样做?

import std.stdio;
void main() {
    class A {
        private void B() {
            writeln("C");
        }
    }
    auto D = new A;
    D.B();
}

【问题讨论】:

    标签: d private-members compiled-language


    【解决方案1】:

    在 D 中,private 是模块私有的,而不是类私有的。因此,如果您希望一段代码无法访问某个类的成员,则该类必须位于不同的模块中。

    唯一的例外是如果代码完全无法访问该类,因为它位于不同的范围内(例如,如果您的模块中有另一个函数,它无法访问A,因为它在里面main)。但只要一段代码可以访问同一模块内的类,那么它就可以访问其所有成员。

    【讨论】:

      猜你喜欢
      • 2011-02-24
      • 1970-01-01
      • 2011-04-22
      • 2011-04-04
      • 1970-01-01
      • 2017-04-20
      • 2012-11-15
      相关资源
      最近更新 更多