//#ifndef _SHAPE_H
//#define _SHAPE_H
#pragma once

#define M_PI 3.14

#include<iostream>

//using namespace std;

class Shape
{
public: 
virtual int getNumType()=0;
virtual void display(std::ostream& os) = 0;


	
virtual int GetX() const=0;
virtual int GetY() const=0;

virtual void SetX(int _X)=0;
virtual void SetY(int _Y)=0;

virtual void Move(int dx,int dy)=0;

virtual void Draw(CDC* pDC, Shape* figure=0, bool doLine=false)=0;

virtual CRect GetBoundRect()=0;

virtual void writeAr(CArchive& ar)=0;
virtual void readAr(CArchive& ar)=0;

virtual CString getName()=0;

virtual ~Shape(){}
	private: 
		friend std::ostream& operator<<(std::ostream& os, Shape* ob)
			 {
				 ob->display(os);
				 return os;
			 }
friend
CArchive& AFXAPI operator<<(CArchive& ar,Shape* ob)
{
   ob->writeAr(ar);
   return ar;
}

friend
CArchive& AFXAPI operator>>(CArchive& ar,Shape* ob)
{
   ob->readAr(ar);
   return ar;
}
};

//#endif
Соседние файлы в папке lab22