私たちが持っているとしましょう
class A {
public:
virtual int foo() { cout << "foo!"; }
}
class B : public A {
public:
virtual int foo() =0;
}
class C : public B {
public:
virtual int foo() { cout << "moo!"; }
}
これは本当にオーバーライドですか?これは実際にはオーバーロードしていると思います。このようなものをデザイン的に作る意味は何ですか?
基本クラス A を取得しました。次に、具象クラス A から派生した抽象派生クラス B を取得し、C を介して B を実現しました。
私たちはここで何をしていて、意味がありますか?