Добавил:
Studfiles2
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз:
Предмет:
Файл:Класс Фигура / figura / main
.cpp#include <iostream.h>
#include <string.h>
class FIGURE
{
protected:
int X;
int Y;
public:
virtual void ShowCoord(void)=0;
};
class CIRCLE;
class QUADRANT: protected FIGURE
{
protected:
int SIDE;
public:
QUADRANT(int nX=0, int nY=0, int nSIDE=1)
{X=nX; Y= nY; SIDE = nSIDE;}
void ShowCoord(void)
{cout<<X<<","<<Y<<endl;}
void ShowSide(void)
{cout<<SIDE<<endl;}
friend void Compare(CIRCLE, QUADRANT);
};
class CIRCLE: protected FIGURE
{
protected:
int RADIUS;
public:
CIRCLE(int nX=0, int nY=0, int nRADIUS=1)
{X=nX; Y=nY; RADIUS = nRADIUS;}
void ShowCoord(void)
{cout<<X<<","<<Y<<endl;}
void ShowRadius(void)
{cout<<RADIUS<<endl;}
friend void Compare(CIRCLE, QUADRANT);
};
class IN_CIRCLE: protected CIRCLE, protected QUADRANT
{
public:
IN_CIRCLE(CIRCLE c, QUADRANT q): CIRCLE(c), QUADRANT(q) {};
void Display(void)
{CIRCLE::ShowCoord();ShowRadius();
QUADRANT::ShowCoord();ShowSide();}
};
class IN_QUADRANT: protected CIRCLE, protected QUADRANT
{
public:
IN_QUADRANT(CIRCLE c, QUADRANT q): CIRCLE(c), QUADRANT(q) {};
void Display(void)
{CIRCLE::ShowCoord();ShowRadius();
QUADRANT::ShowCoord();ShowSide();}
};
void Compare(CIRCLE c, QUADRANT q)
{
try{
if((c.X != q.X) || (c.X != q.Y) || (2*(c.RADIUS) != q.SIDE)) throw 0;
}
catch(int)
{
cout<<"Exception"<<endl;
}
}
void main(void)
{
CIRCLE c1(20,20,5);
QUADRANT q1(30,20,10);
IN_CIRCLE in_c1(c1,q1);
IN_QUADRANT in_q1(c1,q1);
cout<<"---CIRCLE---------------"<<endl;
c1.ShowCoord();
c1.ShowRadius();
cout<<"---QUADRANT-------------"<<endl;
q1.ShowCoord();
q1.ShowSide();
cout<<"---IN_CIRCLE------------"<<endl;
in_q1.Display();
cout<<"---IN_QUADRANT----------"<<endl;
in_q1.Display();
cout<<"---Compare()------------"<<endl;
Compare(c1, q1);
}