D言語では同じファイル内ならprivateメンバにもアクセス可
仕様ってことなんだけど、ちょっとびっくりした。
同一モジュール内では暗黙的に friend 関係になり、同一ファイル内に書くと同一モジュールとなるので、結果として同一ファイル内なら friend 関係で private 無視なんだそうな。
import std.cstream; class Shain { private: int kihonkyu; public: void setKihonkyu(int kihonkyu) { this.kihonkyu = kihonkyu; } int getKihonkyu() { return kihonkyu; } } int main() { Shain s = new Shain; s.setKihonkyu(100); dout.writefln("test1:%d", s.getKihonkyu()); dout.writefln("test2:%d", s.kihonkyu); // errorにならない!! return 0; }