niklas@appli.se (Niklas Hallqvist) (10/26/90)
Is this code really legal? G++ 1.37.1 (+ some early bug fixes of 1.37.2) says so! class A { public: virtual ~A() = 0; }; class B : virtual public A {}; void foo(void) { B b; } Doesn't B have to implement a destructor when deriving <<VIRTUALLY>> from A? Why, if that's the case? If I derive B non-virtually from A, I get the expected error message. Is it a bug? If so, is it fixed in the current version of G++ (whatever that is)? If not, how can i ensure that every class deriving from A (virtually or not) must implement a destructor? I did really forget to write down a destructor, but I trusted the compiler to tell me my mistakes, since I was awfully concentrated when writing the abstract base class, just in order to prevent such a malicious fault go unnoticed. Niklas -- Niklas Hallqvist Phone: +46-(0)31-40 75 00 Applitron Datasystem Fax: +46-(0)31-83 39 50 Molndalsvagen 95 Email: niklas@appli.se S-412 63 GOTEBORG, Sweden mcsun!sunic!chalmers!appli!niklas