Can I implement different implementation to same function from different base classes?

Viewed 627

Assume the following:

class A{ virtual void f() = 0; };
class B{ virtual void f() = 0; };

Can I do the following somehow?

class C : public A, public B
{
  virtual void A::f(){ printf("f() from A"); }
  virtual void B::f(){ printf("f() from B"); }
};

So now I can do???

A* pa = new C();
pa->f(); // prints f() from A;
B* pb = (B*)pa;
pb->f(); // prints f() from B;

Thanks!!!

4 Answers
Related