6. 4 アクセス指示子 (Access Specifier)
アクセス指示子 (Access Specifier) とは、 クラス定義の中のメンバーについて、他の クラスから参照出来るかどうかを指定するためのものです。
それらには次のものがあります。
| アクセス指示子 | 区分 | 公開範囲(参照可能元) |
| public | 公開 | 全体 |
| private | 非公開 | 同一スコープまたはフレンド関数 |
| protected | 限定公開 | 派生クラス |
| (private) | 基底で非公開 | 基底クラスから継承したメンバ関数 |
例えば、
SC_MODULE(cpu) // struct に展開される
{
... // 何も指定しないと public
private
... // 次の指定まで private
public
... // 次に指定があるまで public
protected
... // 次の指定まで protected
}
などと書きます。 出現順は問いません。つまりどのような順に書くことも出来ます。
SC_MODULE の説明の部分 にも書いてありますが、struct で定義を始めて、何も指定がない 部分は public の意味になります。
クラスの定義は、 struct で始める他に class で始めることも出来ます。その class の時には 初期値が public でなく private となります。struct と class の違い は、この点だけです。
表の最後に (private) とあるのは、 「基底クラスで private とされたもの」を指し、それは 基底クラスで定義されているメンバ関数が派生クラスに継承されて いる中でのみ参照可能という分類になります。
