Ale*_*mov 3 d compiled-language private-members
该程序将回显"C".我怎么不允许这样做?
import std.stdio;
void main() {
class A {
private void B() {
writeln("C");
}
}
auto D = new A;
D.B();
}
Run Code Online (Sandbox Code Playgroud)
在D中,private
是模块的私有,而不是类.因此,如果您希望一段代码无法访问类的成员,那么该类必须位于不同的模块中.
唯一的例外是,如果代码根本不能访问该类,因为它在不同的范围内(例如,如果你的模块中有另一个函数,它就无法访问A
,因为它在里面main
).但只要一段代码可以访问同一模块内的类,就可以访问其所有成员.