I have the following sample code of two classes Programmer and CSstudent where
CSstudent:public Programmer
Destructors are defined for both the classes :
class Programmer{
           .........
            public:
               ~Programmer(){
                 cout<<"A Programmer obj destroyed";       
        }
      }
class CSstudent:public Programmer{
           .........
       public:
        ~CSstudent(){
          cout<<"CSstudent obj destroyed";
      }
         }
Now in the main() :
int main(){
    CSstudent cs1;
    /* call to CSstudent member functions by invoking the cs1 object
      ........... */
    cout<<cs1.getName()<<cs1.getUni()<<cs1.getLang()<<endl;
}
After the program runs I get the following: CSstudent obj destroyed A Programmer obj destroyed
I know that destructors are not inherited, and destructors are invoked when objects go out of scope. I initialized a CSstudent object then why do the destructor of the Programmer class invoked ?
I was hoping for this output: CSstudent obj destroyed
 
     
    