6. 8 仮想関数 → 純粋仮想関数 → 抽象クラス → インタフェース
C++ からは少し離れますが、ここまで出て来た、C++ の 「仮想関数 → 純粋仮想関数 → 抽象クラス」 の関係が SystemC の インタフェースに使われる件をまとめておきます。
| 概念 | 意味・作り方 |
|---|---|
| 仮想関数 | 基底クラスで関数にvirtualを付けて宣言する |
| 純粋仮想関数 | 仮想関数= 0とする(定義がなくても良い) |
| 抽象クラス | 純粋仮想関数を一つ以上持つクラス |
| インタフェースクラス | 抽象クラスのうち、一つも実装定義のないもの |
| インタフェース | インタフェースクラスの形で作る |
| チャネル | インタフェースを継承して作る。全ての純粋仮想関数の定義が必要 |
この表で最初の四つは C++ の用語、残りの二つは SystemC の用語です。
抽象クラス、インタフェースクラス、インタフェースは、いづれも そのままではオブジェクトを生成出来ないので、継承して使います。
抽象クラスは、関数の実装を定義しない仮想関数のみ定義した クラスのことをいいます。
チャネルは、インタフェースを継承して作ります。 インタフェースから継承した仮想関数の実装をすべて定義する 必要があります。
