#include using namespace std;   struct POINT {     int x,y; };   // 도형 class CShape { public:     virtual void GetShapeInfo(POINT& ptTopLeft, POINT& ptBottomRight) {} };   // 사각형 보기 class CRectView { public:     void GetOrigin(int x, int y)     {         cout << x << " " << y << endl;     }     void GetSize(int nWidth, int nHeight)     {         cout << nWidth << " " << nHeight << endl;     } };   // 사각형 class CRectangle : public CShape, public CRectView { public:     virtual void GetShapeInfo(POINT& ptTopLeft, POINT& ptBottomRight)     {         GetOrigin(ptTopLeft.x, ptTopLeft.y);         GetSize(ptBottomRight.x - ptTopLeft.x, ptBottomRight.y - ptTopLeft.y);     } };   int main(void) {     CShape* rect = new CRectangle;       POINT pt1 = {3, 4};     POINT pt2 = {7, 8};       rect->GetShapeInfo(pt1, pt2);       delete rect;       return 0; }