[sigc] sigc::trackable::~trackable() is not virtual
- From: Paul Davis <paul linuxaudiosystems com>
- To: libsigc-list gnome org
- Subject: [sigc] sigc::trackable::~trackable() is not virtual
- Date: Thu, 26 Oct 2006 08:58:32 -0400
sigc::trackable::~trackable() is not virtual.
this can lead to problems when using virtual inheritance of a
sigc::trackable, at least with gcc 3.4-4.1. consider this tree:
class A : public virtual sigc::trackable {}
class B : public virtual sigc::trackable {}
class C : public A, public B {}
this leads to a compiler-induced disaster when destroying a C. or at
least it can (i just spent most of a week tracking this down).
why is this destructor not virtual by default? i thought it was widely
accepted good practice that if the class is ever intended to be
inheritable, its destructor should be virtual?
--p
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]