home bbs files messages ]

Forums before death by AOL, social media and spammers... "We can't have nice things"

   comp.lang.c++.moderated      Moderated discussion of C++ superhackery      33,346 messages   

[   << oldest   |   < older   |   list   |   newer >   |   newest >>   ]

   Message 31,394 of 33,346   
   linq936 to All   
   Is destructor automatically be virtual i   
   24 Aug 11 16:44:20   
   
   ab334bdd   
   From: linq936@gmail.com   
      
   Hi,   
   The question just came to me and could not find an answer.   
      
   Normally we do not declare constructor and destructor in pure class   
   and compiler generates them, but since the class is pure, compiler   
   should declare the destructor as virtual, isn't it?   
      
   class Base {   
      public:   
         virtual void do_sth() = 0;   
   };   
      
   class D {   
      public:   
         virtual void do_sth() {}   
      
       ... some other things ...   
   };   
      
   int main()   
   {   
     Base* p = new D();   
     p->do_sth();   
     delete p;   
     return 0;   
   }   
      
   We write above sort of code a lot, if the destructor generated by   
   compiler is not virtual, there will be memory leak.   
      
   Can you confirm?   
      
      
   --   
         [ See http://www.gotw.ca/resources/clcm.htm for info about ]   
         [ comp.lang.c++.moderated.    First time posters: Do this! ]   
      
   --- SoupGate-Win32 v1.05   
    * Origin: you cannot sedate... all the things you hate (1:229/2)   

[   << oldest   |   < older   |   list   |   newer >   |   newest >>   ]


(c) 1994,  bbs@darkrealms.ca