例を挙げましょう。
class base{
public:
virtual void abstract() = 0;
};
class derived:public base{
public:
void abstract(){cout << "Abstract\n";}
};
int main{
derived d;
d.abstract();
return 0;
}
それは、次のように別の方法で書くこともできます。
class base{
public:
void abstract(){cout << "Abstract\n";}
};
int main{
base b;
b.abstract();
return 0;
}
それも同じ結果を提供しています。実際、ここではクラスを派生させる必要はありません。私は抽象クラスに関する多くの記事を読みましたがit says we can not instantiate base class、pure virtual functionユーザーにdefine the function. しかし、両方のケースで上記のコードが表示される場合、同じ結果が得られます ( or output)。ここで私の質問は、abstractクラスがどのように役立つかです。