第10、11周项目1 简单派生类(3)
2016-05-14 10:13
190 查看
/* *copyright(c) 2016,烟台大学计算机与控制工程学院 *All rights reserved *文件名称:test.cpp *作者:李硕 *版本:Code::Blocks * *问题描述:简单派生类 *输入描述: *程序输出: */ #include <iostream> #include <cmath> #include <string> #define N 3.1415926 using namespace std; class Point//中心位置 { public: Point(int a,int b):x(a),y(b){} int getX() { return x; } int getY() { return y; } void show() { cout<<"("<<x<<","<<y<<")"<<endl; } protected: int x,y; }; class Circle:public Point { public: Circle(int a,int b,double c):Point(a,b),r(c){} //Circle(int d):r(d){} double area()//地面面积 { return N*r*r; } void show() { cout<<"中心为:("<<x<<","<<y<<") 半径为:"<<r<<"面积为:"<<area()<<endl; } protected: double r; }; class Cylinder:public Circle { public: Cylinder(int a,int b,double c,double d):Circle(a,b,c),h(d){}//此处构造函数应是引用直接派生类 double volume() { return Circle::area()*h; } double area() { return 2*Circle::area()+2*N*r*h; } void show() { cout<<"面积为:"<<area()<<"体积为:"<<volume()<<endl; } protected: double h; }; int main() { Point p1(1,3); cout<<"点"<<endl; p1.show(); Circle c(1,3,2); cout<<"圆形"<<endl; c.show(); cout<<"圆柱"<<endl; Cylinder cy(1,3,2,3); cy.show(); return 0; }
小结:多重派生类,构造函数的升级。
相关文章推荐
- session Storage、local Storage和IndexedDB的区别
- 结构体内重载小于号< 及构造函数
- java多线程的创建
- php+html5+ajax实现上传图片的方法
- UITabBarItem设置selectedImage无效解决
- [SDOI2011] [BZOJ2242] 计算器 - bsgs,快速幂,逆元,map/hash
- 排序算法:堆排序
- Service与Intent(一)
- /proc/sys/net/ipv4/下各项的意义
- Python随手笔记-day1
- listview 中item 点击无效
- 网络仿真NS2之——环境配置
- linux centos下 svn 版本控制服务器的搭建
- CSS 实现:checkbox
- 解决“只能通过Chrome网上应用商店安装该程序”的方法
- HDU 5392 Infoplane in Tina Town (置换+质因子分解求最小公倍数)
- 菜鸟成长记-妈妈再也不用担心正则了
- 带你学开源项目:Meizhi Android之RxJava & Retrofit最佳实践
- JavaScript事件处理
- iOS代理 理解