2-11-4 类族的设计

来源:互联网 发布:snap linux 编辑:程序博客网 时间:2024/06/03 18:12

问题及代码:

#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 GetX();    double GetY();protected:    double x,y;   //点的横坐标和纵坐标};void Point::PrintPoint(){    cout<<"Point: ("<<x<<","<<y<<")"<<endl;    //输出点}double Point::GetX(){    return x;}double Point::GetY(){    return y;}class Circle:public Point{protected:    double r;public:    Circle(double x0,double y0,double r0=1):Point(x0,y0),r(r0){};    double Area();    double Perimeter();};double Circle::Area(){    return 3.14*r*r;}double Circle::Perimeter(){    return 2*3.14*r;}class Cylinder:public Circle{protected:    double h;public:    Cylinder(double x0,double y0,double r0,double h0):Circle(x0,y0,r0),h(h0){};    double area();    double Volume();};double Cylinder::area(){    double s;    s=Area()*2+Perimeter()*h;    return s;}double Cylinder::Volume(){    return Area()*h;}int main(){    Cylinder c(1,1,2,3);    cout<<"The Area is "<<c.area()<<endl;    cout<<"The Volume is "<<c.Volume()<<endl;    return 0;}


运行结果:


学习小结:

额,有点粗糙啊!

我是直接奔着求圆柱周长而设计的类族,很明显,非常粗糙.....



0 0