Category: C/C++

| 0 Comments

So why the heck would you or anyone else ever want to define a virtual destructor? Have a look at the following code:

class Blah {
public:
    virtual ~Blah() {}
// more code
};

Note here that the body of the virtual destructor is empty. What gives?

When you think about it more closely, you cannot help but realize that this is necessary. Whenever a pointer to the Blah class is used to delete an object that might actually be a derived-class object, then be careful, e.g. a virtual destructor is required unless you enjoy blowing up your program in unpredictable ways.

Since this destructor is inherited by the derived classes there is no need to redefine this destructor in the derived classes.

| 0 Comments

If your class needs a destructor, it probably needs a copy destructor and an assignment operator too. In other words, you can look at it this way:

T::T()
T::~T()
T::T(const T&)
T::operator=(const T&)

In the long run it is probably a better idea to make it a habit always to include all of these for a given class, just in case.

Recent Assets

  • Heren1-golf-team-2013.jpg
  • MMA-2013-05-04.png
  • Criss-cross-sky.png
  • Hole-15-zoom-to-flag.png
  • Hole-15-from-tee.png
  • Hole-in-One.png
  • Winter-Light.png
  • IMG_0372.JPG
  • golfing-in-the-snow.png
  • Napoleon-i-9420291-2-402.jpg
  • gary-player-quotes.jpg
  • driving-in-the-snow-view.png

Recent Comments

OpenID accepted here Learn more about OpenID

Information

This personal weblog was started way back on July 21, 2001 which means that it is 7-21-2001 old.

So far this blog contains no less than 1977 entries and as many as 1843 comments.

I graduated from Stanford 6-5-1979 ago.

Believe it or not but I am 10-11-1957 young.

I first met Thea 6-14-1980 ago.

Important events

I graduated from Stanford 6-5-1979 ago.

Believe it or not but I am 10-11-1957 young.

I first met Thea 6-14-1980 ago.