Let's say that
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!"; }
}
Is this really a redefinition? I think this is really an overload . What is the point of doing something similar, design wise?
We got the base class A. Then we got the abstract derived class B, which was obtained from the concrete class A, and then the implementation of B through C.
What are we doing here and does it make sense?
source
share