www.delorie.com/archives/browse.cgi   search  
Mail Archives: cygwin-developers/1998/03/27/10:29:55

From: rdparker AT butlermfg DOT org (Parker, Ron)
Subject: RE: Mark ~fhandler_base virtual?
27 Mar 1998 10:29:55 -0800 :
Message-ID: <c=US%a=_%p=Butler_Manufactu%l=BUILDINGS/BLDGSHUB/00089B3B.cygnus.cygwin32.developers@nttwr2.tower.bldgs.butlermfg.org>
Mime-Version: 1.0
To: Larry Hall <lhall AT rfk DOT com>,
"'cygwin32-developers'"
<cygwin32-developers AT cygnus DOT com>

This message is in MIME format. Since your mail reader does not understand
this format, some or all of this message may not be legible.

------ =_NextPart_000_01BD5899.0B850730
Content-Type: text/plain; charset="us-ascii"
Content-Transfer-Encoding: 7bit

The only size effect in declaring a destructor as virtual is that it 
lengthens an objects vtable by sizeof(void*), admittedly 4-bytes is 
not an issue. However, in a class that has no virtual functions it 
also adds a vtable to the class and a vtable pointer to all of the 
objects of that class. This increases the size of the objects by 
sizeof(void*).  This is only becomes a memory issue for small classes 
that have a large number of instances.

By all means if a class has subclasses that contain explicitly 
declared destructors, the superclass should have a virtual destructor. 
 See my previous message for more information on the need of virtual 
destructors.

-----Original Message-----
From: Larry Hall [mailto:lhall AT rfk DOT com]
Sent: Wednesday, March 25, 1998 8:04 AM
To: Geoffrey Noer; cygwin32-developers AT cygnus DOT com
Cc: noer AT cygnus DOT com
Subject: Re: Mark ~fhandler_base virtual?


At 06:39 PM 3/24/98 -0800, Geoffrey Noer wrote:
>I've been cleaning up warnings generated by compiling cygwin32 with
>-Wall.  One of them is that fhandler.h declares virtual functions 
but
>has a non-virtual destructor.
>
>Should I make ~fhandler_base virtual?  I *think* it's not necessary
>but wouldn't hurt either.  The function set_name (which is the only
>thing that calls new and thus needs the destructor) is only called 
by
>fhandler_base functions.
>
>--
>Geoffrey Noer
>noer AT cygnus DOT com
>

I haven't looked at fhandler_base but assuming its name is indicative 
of
its function and the fact that there are virtual functions on this 
class,
a virtual destructor is recommended.  In general, if a class is a base 
class, its destructor should be virtual.  Also, there is no harm in 
making
a destructor virtual even if the class is not a base class (or isn't 
"yet").


Larry Hall                              lhall AT rfk DOT com
RFK Partners, Inc.                      (781) 239-1053
8 Grove Street                          (781) 239-1655 - FAX
Wellesley, MA  02181                    http://www.rfk.com


------ =_NextPart_000_01BD5899.0B850730
Content-Type: application/ms-tnef
Content-Transfer-Encoding: base64

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

------ =_NextPart_000_01BD5899.0B850730--

- Raw text -


  webmaster     delorie software   privacy  
  Copyright © 2019   by DJ Delorie     Updated Jul 2019