Mammal *pDog = new Dog;
here Mammal is base class and Dog is it's derived class

In such declaration destructor is not called why is it rule of C++?