4.11 上机实践
类point表示一个坐标点,其原型为:
- class point
- {
- public:
- point(double a=0,double b=0){x=a;y=b;}
- …
- private:
- double x;double y;
- };
要求编写程序,完成如下功能。
(1)定义类point的成员函数,计算一个点到当前点的距离。其原型如下:double dis(point &p)。
(2)由类point定义一个共有派生类circle,类circle中增加一个数据成员double r,r表示半径。该类有两个构造函数和计算面积的函数area()。
(3)定义main()函数,按下面的要求编写程序。
- main()
- {
- //定义类point的对象p1,坐标为(2.5,3.5)
- //定义类point的对象p2,坐标(3.0,2.0)
- //用拷贝构造的方式定义point对象p3,坐标与p1相同
- //计算并输出p2,p3距离
- //定义类circle的对象c,圆心坐标(2.0,2.0),半径1.5
- //计算并输出c的面积
- }
提示:本例主要考察类的基本使用方法,包括类的成员函数的定义,构造函数的使用、类的派生和对象的使用等。参考代码如下:
- #include <iostream.h>
- #include <math.h>
- class point
- {
- public:
- point(double a=0,double b=0){X = a;Y = b;} //构造函数
- point(const point &p) //拷贝构造函数
- {
- X = p.X;Y = p.Y;
- }
- ~point(){}
- double distance(point &p) //成员函数
- {
- double dis;
- dis = sqrt(pow(this->X-p.X,2)+pow(this->Y-p.Y,2));
- return dis;
- }
- void print()
- {
- cout<<"X= "<<this->X<<" "<<"Y= "<<this->Y<<endl;
- }
- private:
- double X;
- double Y;
- };
- class circle:public point //派生类
- {
- private :
- double r;
- public:
- circle(double a,double b,double c):point(a,b)
- { r = c;}
- ~circle(){}
- double area(){return 3.14159 *r *r;}
- };
- int main()
- {
- point p1(2.5,3.5),p2(3.0,0.0); //定义类point对象
- point p3(p1);
//使用拷贝构造函数定义对象- cout<<"the distance between p2 and p3 is : "<<p2.distance(p3)<<endl;
- circle c1(2.0,2.0,1.5); //定义类circle对象
- cout<<"the area of circle c1 is: "<<c1.area()<<endl;
- return 0;
- }
【责任编辑:云霞 TEL:(010)68476606】
| 回书目 上一节 下一节 |