Talk About Network

Google


Register and Login
Nick
Password
Register create new account Sign up is FREE and you can post replies, new topics, bookmark posts and more!
Recover lost password


Programming > C++ Moderated > Re: Destructor ...
Latest [ Topics | Posts ] Archive Post A New Topic Post a Reply
<< Topic < Post Post 15 of 16 Topic 9528 of 9830
Post > Topic >>

Re: Destructor not called with forward declaration instead of include

by Carl Barron <cbarron413@[EMAIL PROTECTED] > Apr 27, 2008 at 07:01 AM

In article <fuuqcu$han$1@[EMAIL PROTECTED]
>, Seungbeom Kim
<musiphil@[EMAIL PROTECTED]
> wrote:

> > redesign the class hierarchy). Could the following be enough?
> > 
> >    virtual class Clazz; // I have a virtual destructor, promise!
> 
> I guess the compiler may need the complete class definition even
> just to invoke the virtual destructor; e.g. it has to know which
> entry in the vtable represents the destructor.
Probably true, the simplest is not to delete the incomplete class even
providing a holder

// NOT TESTED!!!!
class Holder
{
// everything provided private access.
// default cpy_ctor/assign probably ok...
// if not they are public access...

    class Incomplete;
    ~Holder();
    Holder(Incomplete *a):ptr(a){}
    Incomplete *ptr;
    friend class UsingClass;
};
or the like hides the dtor from anything but UsingClass as well as the
Incomplete type so  Holder can be copied. assigned and not deleted or
created outside of UsingClass.  So the problem disappears if the
implementation of UsingClass sees the complete implementation
of Incomplete and ~Holder() implementation....

-- 
      [ See http://www.gotw.ca/resources/clcm.htm
for info about ]
      [ comp.lang.c++.moderated.    First time posters: Do this! ]
 




 16 Posts in Topic:
Destructor not called with forward declaration instead of includ
internetpet <internetp  2008-04-21 20:43:18 
Re: Destructor not called with forward declaration instead of in
=?ISO-8859-1?Q?Daniel_Kr=  2008-04-22 10:54:58 
Re: Destructor not called with forward declaration instead of in
Triple-DES <DenPlettfr  2008-04-22 10:52:59 
Re: Destructor not called with forward declaration instead of in
Travis Vitek <travis.v  2008-04-22 10:53:33 
Re: Destructor not called with forward declaration instead of in
marlow.andrew@[EMAIL PROT  2008-04-22 11:07:11 
Re: Destructor not called with forward declaration instead of in
Maciej Sobczak <see.my  2008-04-22 11:13:17 
Re: Destructor not called with forward declaration instead of in
alasham.said@[EMAIL PROTE  2008-04-22 11:18:19 
Re: Destructor not called with forward declaration instead of in
Brendan <catphive@[EMA  2008-04-22 11:13:28 
Re: Destructor not called with forward declaration instead of in
nickf3 <nickf3@[EMAIL   2008-04-22 11:43:17 
Re: Destructor not called with forward declaration instead of in
Alan Johnson <awjcs@[E  2008-04-22 11:43:18 
Re: Destructor not called with forward declaration instead of in
peter koch larsen <pet  2008-04-22 15:22:47 
Re: Destructor not called with forward declaration instead of in
Vidar Hasfjord <vattil  2008-04-23 13:13:18 
Re: Destructor not called with forward declaration instead of in
Triple-DES <DenPlettfr  2008-04-23 13:13:15 
Re: Destructor not called with forward declaration instead of in
Seungbeom Kim <musiphi  2008-04-26 08:42:07 
Re: Destructor not called with forward declaration instead of in
Carl Barron <cbarron41  2008-04-27 07:01:39 
Re: Destructor not called with forward declaration instead of in
Vidar Hasfjord <vattil  2008-04-27 07:44:19 

Post A Reply:
  Go here to Signup

AddThis Feed Button


About - Advertising - Contact - Frequently Asked Questions - Privacy Policy - Terms of Use - Signup

Contact
tan12V112 Fri Jul 25 15:43:20 CDT 2008.