#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 '[C@1a9e0f7' has virtual method 'area' but non-virtual destructor
Как понять это предупреждение и как улучшить код?
[РЕДАКТИРОВАТЬ] эта версия теперь верна? (Пытаюсь дать ответ, чтобы прояснить себе эту концепцию)
#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(){}
};