class A {};
class B: A {};
struct C {};
struct D: C {};
int main(void) {
A *clA = new B(); //1
B *clB = new B(); //2
C *stC = new D(); //3
D *stD = new D(); //4
delete clA;
delete clB;
delete stC;
delete stD;
return 0;
}