6. 7 抽象クラス AbstractClass
- 目的
通常のクラスは、そのクラスのオブジェクト(インスタンス)を 単に配置するために使います。 これに対して、抽象クラスは、 「抽象度の高い一般概念」を持ったクラスを定義するためのものです。
- 意味・効果
この方法で作ったクラスは 「オブジェクトを生成できない」クラスになります。 クラスを作る時に継承するためのものです。
- 定義方法
純枠仮想関数が一個以上存在するクラスを記述します
- 利用方法
クラスを新たに定義する時に、継承リストに加えます。 例えば、次のように書きます。
class mem : public sc_channel, public mem_if
{
public:
別の言い方をすると、 抽象クラスは「派生クラス」を作る時に使うものです。 ここの例では、mem が新たに作る派生クラス、mem_if がその時に継承する抽象クラスです。
- 定義例
抽象クラスの定義の例は次のようなものです。 ここでは mem_if が抽象クラスになります。
#include <systemc.h>
class mem_if : virtual public sc_interface
{
public:
virtual void writeDirect(int&, int *) = 0;
virtual void readDirect(int&, int *) = 0;
};
抽象クラスは C++ で提供されている機能ですが、 SystemC ではインタフェースを定義する時にこの 抽象クラスを使います。
