#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(){}
  };
