class has virtual functions and accessible non-virtual destructor
I have two classes: class A { public: virtual void somefunction() = 0; }; class B : public A { public: B(); ~B(); void somefunction(); }; B::B() {} void B::somefunction() { // some code } But with g++ I get errors: class A has virtual functions and accessible non-virtual destructor class B has virtual functions and accessible non-virtual destructor I don't have any idea what this error is... Somewhere on blogs I read that it's a compiler warning. How can I fix the problem? This happens because your base class A does not have a virtual destructor. For instance, if you had this code: int main()