如何在D中声明私有类成员?

该程序将回显“C”.我怎么不允许这样做?

import std.stdio;
void main() {
    class A {
        private void B() {
            writeln("C");
        }
    }
    auto D = new A;
    D.B();
}
最佳答案
在D中,private是模块的私有,而不是类.因此,如果您希望一段代码无法访问类的成员,那么该类必须位于不同的模块中.

唯一的例外是,如果代码根本不能访问该类,因为它在不同的范围内(例如,如果你的模块中有另一个函数,它就无法访问A,因为它在main中).但只要一段代码可以访问同一模块内的类,就可以访问其所有成员.

转载注明原文:如何在D中声明私有类成员? - 代码日志