例を挙げましょう。
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
クラスがどのように役立つかです。