Applistar

6. 7 抽象クラス AbstractClass

TOP > 6 SystemCを理解するためのC++入門 > 6. 7 抽象クラス AbstractClass
  6. 7 抽象クラス AbstractClass  

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 ではインタフェースを定義する時にこの 抽象クラスを使います。

  6. 7 抽象クラス AbstractClass  
TOP > 6 SystemCを理解するためのC++入門 > 6. 7 抽象クラス AbstractClass