私の本で次のコードを見ています:
class Shape
{
public:
Shape(){}
~Shape(){}
virtual long getArea() = 0; // Pure virtual function
virtual long getPerim() = 0;
virtual void draw() = 0;
};
現在、これらの仮想関数はクラスを抽象化すると言われているため(Javaから理解しています)、クラスをインスタンス化できません。
ただし、 「クラス宣言に1つ以上の仮想関数を含めることにより、クラスは抽象データ型になります」と書かれています。
これは、純粋仮想関数を 1 つ持つクラスを宣言した場合、次のことを意味します。
class Shape
{
public:
Shape(){}
~Shape(){}
virtual long getArea() = 0; // Only pure virtual function
virtual long getPerim(){}
virtual void draw(){}
};
クラス全体が抽象化されますか?=0
クラスに100以上のメソッドがある場合、後で抽象化することにした場合、すべてのメソッドを記述するのは面倒だからです。