Types of Destructors in C++