#include <iostream>
using namespace std;
class CPolygon {
protected:
int width, height;
public:
virtual int area ()
{ return (0); }
};
class CRectangle: public CPolygon {
public:
int area () { return (width * height); }
};
Предупреждение о компиляции
Class '[[email protected]' has virtual method 'area' but non-virtual destructor
Как понять это предупреждение и как улучшить код?
[EDIT] эта версия сейчас правильная? (Попытка дать ответ, чтобы разъяснить мне концепцию)
#include <iostream>
using namespace std;
class CPolygon {
protected:
int width, height;
public:
virtual ~CPolygon(){};
virtual int area ()
{ return (0); }
};
class CRectangle: public CPolygon {
public:
int area () { return (width * height); }
~CRectangle(){}
};