第10周-项目3-点类派生直线类
来源:互联网 发布:mac 版本不支持os银联 编辑:程序博客网 时间:2024/05/21 18:48
问题及代码:
运行结果:
继承。
/* *Copyright (c)2015,烟台大学计算机与控制工程学院 *All rights reserved. *文件名称:Point.cpp *作 者:单昕昕 *完成日期:2015年5月15日 *版 本 号:v1.0 *问题描述:定义点类Point,并以点类为基类,派生出直线类Line,从基类中继承的点的信息表示直线的中点。请阅读下面的代码,并将缺少的部分写出来。*程序输入:无。*程序输出:点的信息。*/ #include<iostream>#include<cmath>using namespace std;class Point //定义坐标点类{public: Point():x(0),y(0) {}; Point(double x0, double y0):x(x0), y(y0) {}; void PrintPoint(); //输出点的信息 double get_x() { return x; } double get_y() { return y; }protected: double x,y; //点的横坐标和纵坐标};void Point::PrintPoint(){ cout<<"Point: ("<<x<<","<<y<<")"; //输出点}class Line: public Point //利用坐标点类定义直线类, 其基类的数据成员表示直线的中点{public: Line(Point pts, Point pte); //构造函数,用初始化直线的两个端点及由基类数据成员描述的中点 double Length(); //计算并返回直线的长度 void PrintLine(); //输出直线的两个端点和直线长度private: class Point pts,pte; //直线的两个端点,从Point类继承的数据成员表示直线的中点};Line::Line(Point pt1, Point pt2):Point((pt1.get_x()+pt2.get_x())/2,(pt1.get_y()+pt2.get_y())/2){ pts=pt1; pte=pt2;}double Line::Length(){ return sqrt((pts.get_x()-pte.get_x())*(pts.get_x()-pte.get_x())+(pts.get_y()-pte.get_y())*(pts.get_y()-pte.get_y()));}void Line::PrintLine(){ cout<<" 1st "<<endl; pts.PrintPoint(); cout<<endl; cout<<" 2nd "<<endl; pte.PrintPoint(); cout<<endl; cout<<" The Length of Line: "<<Length()<<endl;}int main(){ Point ps(-2,5),pe(7,9); Line l(ps,pe); cout<<"About the Line: "<<endl; l.PrintLine(); //输出直线l的信息:两端点及长度 cout<<"The middle point of Line is: "; l.PrintPoint(); //输出直线l中点的信息 return 0;}
运行结果:
继承。
学习心得:
真的好难写。。
感觉很生。。
一开始木有想到用get_x() 和get_y(),我用的是.x和.y,一直报错。。
后来看了贺老师的参考答案才会用这个方法,唉,为什么我想不到呢~~
0 0
- 第10周-项目3-点类派生直线类
- 第10周项目3点类派生直线类
- 第10周项目3-点类派生直线类
- 第10-11周项目:点类派生直线类
- 第11周 项目3 点类派生直线类
- 第11周 【项目3 - 点类派生直线类】
- 第11周项目3-点类派生直线类
- 第11周项目3-点类派生直线类
- 第11周 项目3 点类派生直线类
- 第11周项目3 点类派生直线类
- C++第10/11周项目 继承与派生 【点类派生直线类 】(复习新版)
- 第11周项目三-点类派生直线类
- 第11周 项目三-点类派生直线类
- 第11周项目4-点类派生直线类
- 项目3 - 点类派生直线类
- 项目3 点类派生直线类
- 项目3-点类派生直线类
- 第11周-继承与派生-项目4-点类派生直线类
- PAT--Hashing - Hard Version (30)
- instagram的手机验证码乱码解决方法(中国)
- ArrayList和Vector的区别
- C语言访问MySQL数据库
- 黑马程序员 ——Java基础之内部类、异常、包
- 第10周-项目3-点类派生直线类
- Linux的SOCKET编程详解
- Android Studio下构建NDK
- HashMap和Hashtable的区别
- OpenLayers 项目完整分析(二)源代码总体结构分析
- 深入剖析Android四大组件(三)——AIDL实现Android IPC
- Windows程序设计(Hello,word!)
- OpenLayers 项目分析(三)BaseTypes
- 面试:实现内存复制函数