}
voidmain()
{
Aa,b;
a.Show();
b.Show();
}
结果如下:
constructor.
constructor.
c=20
c=20
destructor.
destructor.
六、程序设计题(本大题共l小题,共10分)
53.利用LOCATION类,使用继承定义圆类CIRCLE,圆由圆心和半径构成。
提供得到圆心坐标和半径的成员函数、以及计算圆的周长和面积的成员函数。
在主程序中创建两个圆A和B,圆心坐标分别为(0,3)、(3,7),按如下格式输出两个圆的圆心坐标、周长和面积,并计算和输出两个圆的圆心之间的距离。
A:
(xl,y1,r1),Girth=g1,Area=a1
B:
(x2,y2,r2),Girth=g2,Area=a2
A(xl,y1),B(x2,y2),Distance=d
定义LOCATION类,该类没有“继承”等现象。
注意二维坐标点之间的距离公式。
classLOCATION{
doublex,y;
public:
virtualdoublegetx()const{returnx;};
virtualdoublegety()const{returny;};
virtualdoubledist(LOCATION&s)const;
LOCATION(doublex,doubley):
x(x),y(y){};};
doubleLOCATION:
:
dist(LOCATION&s)const{
doublexd=s.x—x,yd=s.y—y;
returnsqrt(xd*xd+yd*yd);}
仅供参考:
#include
#include
usingnamespacestd;
classLOCATION
{
doublex,y;
public:
virtualdoublegetx()const{returnx;};
virtualdoublegety()const{returny;};
virtualdoubledist(LOCATION&s)const;
LOCATION(doublex,doubley):
x(x),y(y){};
};
doubleLOCATION:
:
dist(LOCATION&s)const
{
doublexd=s.x-x,yd=s.y-y;
returnsqrt(xd*xd+yd*yd);
}
classCIRCLE:
publicLOCATION
{
doublex1,y1,r1;
public:
doublegetr()const{returnr1;}
CIRCLE(doublexd,doubleyd,doublerd):
LOCATION(xd,yd)
{
r1=rd;
}
doubleGirth(doublerd)
{
return2*3.14*rd;
}
doubleArea(doublerd)
{
return3.14*rd*rd;
}
};
voidmain()
{
CIRCLEa(0,3,4),b(3,7,7);
cout<<"A:
("<cout<<"B:
("<cout<<"A("<}