程序将返回"C"。我怎么阻止它呢?
import std.stdio;
void main() {
class A {
private void B() {
writeln("C");
}
}
auto D = new A;
D.B();
}
D中,private
是模块私有的,而不是类私有的。所以,如果你想让一段代码不能访问类的成员,那么这个类必须在不同的模块中。
唯一的例外是,如果代码根本没有访问类,因为它在不同的范围内(例如,如果你在模块中有另一个函数,它无法访问A
,因为它在main
内部)。但是只要一段代码可以访问同一模块内的类,那么它就可以访问它的所有成员。