假设我们有
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。
我们在这里做什么,这有意义吗?