以前のリビジョンの文書です
従来のC++では private protected publicなどのアクセス指定子はクラスのメンバーおよび継承元クラスに用いるものでしたが、C++/CLIではそれに加えてクラス自身にもアクセス指定子を指定できます。
.net frameworkではクラスをバイナリで外部に公開できるため(参照)、そのクラスが外部に対してどのようなアクセス指定を持つかを指定することができます。
また、private, protected, publicのほかにinternal, private protected, protected publicが追加されています。 ★protected privateやpublic protectedもありますがこれらはprivate protected, protected publicと同じです。
クラスはそのアセンブリの内部だけで使用できる。 =(ビルド単位で使用できる。) =(ソースコートが見えれば使用できる。)
・public みんなが使用できる。 =(バイナリだけあれば使用できる) =(#usingで参照して使用できる)
・private メンバーはそのクラスの内部からのみ使用できる。
・protected メンバーはそのクラスおよび派生クラスから使用できる。
・public メンバーは誰でも使用できる。
・private protected アセンブリ外部からは使用できない。アセンブリ内部からは派生クラスから使用できる。
・internal (= private public) アセンブリ外部からは使用できない。アセンブリ内部からは誰でも使用できる。
・protected public アセンブリ外部からは派生クラスから使用でる。アセンブリ内部からは誰でも使用できる。
2つのアクセス指定子がある場合は、より制限のきつい方がアセンブリ外部用で、よりゆるいほうがアセンブリ内部用になります。