//2)
struct C2 : public C1
{
C2(int val):C1(val) {}
};
//3)
struct C3 : public C1
{
C3(int val):C1(val) {}
};
//4)
struct C4 : public Base
{
C4(int val):Base(val) {};
};
//5)
struct C5 : public Base
{
C5(int ival):Base(ival) {}
};