第10周项目4-3类族的设计
来源:互联网 发布:ios刷机用什么软件 编辑:程序博客网 时间:2024/06/10 02:40
编号及代码:/**Copyright(c)2015,烟台大学计算机与工程学院*All rights reserved;*文件名称:score.cpp*作者:范星月*完成日期:2015年5月20日*版本号:v1.0**问题描述:在以Circle为直接基类,派生出一个Cylinder类,再增加数据成员h*问题输入:无*问题输出:*/#include <iostream>using namespace std;class Point{public: Point () {}; Point (double xx=0,double yy=0):x(xx),y(yy) {}; void setPoint(double,double); double getX() { return x; } double getY() { return y; } friend ostream&operator<<(ostream&output,Point &p);protected: double x,y;};void Point ::setPoint(double xx,double yy){ x=xx; y=yy;}ostream&operator<<(ostream&output,Point &p){ output<<"("<<p.x<<","<<p.y<<")"<<endl; return output;}class Circle:public Point{public: Circle(double xx,double yy,double rr):Point(xx,yy),radius(rr) {}; void setRadius(double); double getRadius(); double area(); friend ostream&operator<<(ostream&output,Circle &c);protected: double radius;};void Circle::setRadius(double rr){ radius=rr;}double Circle::getRadius(){ return radius;}ostream&operator<<(ostream&output,Circle &c){ output<<"圆心为("<<c.x<<","<<c.y<<"),半径为"<<c.radius<<",area="<<c.area()<<endl; return output;}double Circle::area(){ return 3.14*radius*radius;}class Cylinder:public Circle{public: Cylinder(double xx,double yy,double rr,double hh):Circle(xx,yy,rr),height(hh){} void setHeight(double hh) { height=hh; } double getHeight() { return height; } double area(); double volume(); friend ostream&operator<<(ostream&,Cylinder &c);protected: double height;};double Cylinder::area(){ return 2*Circle::area()+2*3.14*radius*height;}double Cylinder::volume(){ return Circle::area()*height;} ostream&operator<<(ostream&output,Cylinder &C) { output<<"圆心为("<<C.x<<","<<C.y<<"),半径为"<<C.radius<<"高度为"<<C.height<<endl; output<<"面积为"<<C.area()<<"体积为"<<C.volume()<<endl; return output; }int main(){ Cylinder c(1,1,1,1); cout<<"原始圆柱;x="<<c.getX()<<" y="<<c.getY()<<" r="<<c.getRadius()<<" h="<<c.getHeight()<<" area="<<c.area()<<" volume="<<c.volume()<<endl; c.setRadius(2); cout<<"现在圆柱;x="<<c.getX()<<" y="<<c.getY()<<" r="<<c.getRadius()<<" h="<<c.getHeight()<<" area="<<c.area()<<" volume="<<c.volume()<<endl; c.setPoint(2,2); cout<<"现在圆柱;x="<<c.getX()<<" y="<<c.getY()<<" r="<<c.getRadius()<<" h="<<c.getHeight()<<" area="<<c.area()<<" volume="<<c.volume()<<endl; return 0;}
学习总结:
若派生类需要基类的数据成员与成员函数,一般将数据成员设定为Protected,将成员函数设定为Public
0 0
- 第10周项目4-3类族的设计
- 第10周-项目4-类族的设计
- 第10周项目4-1类族的设计
- 第10周项目4-2类族的设计
- 第10周项目4-类族的设计
- 第11周 【项目4 - 类族的设计】
- 第11周项目4-类族的设计
- 第11周项目4-类族的设计
- 第11周 项目4 类族的设计
- 第10周项目1-点-圆-圆柱类族的设计(3)
- 第10、11周项目1:点-圆-圆柱类族的设计(3)
- 第10、11周项目1-点、圆、圆柱类族的设计(3)
- 第11周项目类族的设计
- 第11周 项目四-类族的设计
- 第11周项目5-类族的设计
- 第11周项目4 类组的设计
- 第10、11周项目— 点-圆-圆柱类族的设计(1)
- 第10周项目 - 点-圆-圆柱类族的设计
- maven中snapshot快照库和release发布库的区别和作用
- C++ :预定义-待补充
- VS2010通过ADO连接EXCEL数据库
- 【打印技术02】打印机状态监控
- UVA 1343 The Rotation Game
- 第10周项目4-3类族的设计
- Maven dependency scope
- 蓝桥杯 带分数 (JAVA版)
- android获取经纬度3种方法
- 黑马程序员----------核心语法
- 【单调栈】【bzoj1113】海报PLA
- sas导入外部数据文件
- 邻接表转邻接矩阵
- Core Animation学习笔记