Say I have an interface I:
class I
{
public:
virtual int f() = 0;
};
and class B implementing I:
class B: public I
{
public:
int f() override { return 1; }
...
}
can I define a (template) class C so that:
- class C implements I.
- class C implements everything else B has without writing a wrapper for every B function.
- class C overrides f().
- underlying B instance uses unmodified B::f().
?