您的位置:首页 > 其它

第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;

}




小结:多重派生类,构造函数的升级。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: