圆与圆柱(C++继承)

来源:互联网 发布:北京sql培训班 编辑:程序博客网 时间:2024/05/10 06:51

  • 代码
    • ciecleh
    • circlecpp
    • maincpp

代码

ciecle.h

// circle.h#ifndef _CIRCLE__H__#define _CIRCLE__H__const double PI=3.1415926; class Circle{public:    Circle(double r);    ~Circle();    void SetRadius(double r);    double GetRaidus() const;    double GetArea() const;    void Print () const;private:    double raidus;};class Cylinder:Circle{public:    Cylinder(double r, double h);    ~Cylinder();    void SetHeight(double h);    double GetHeight() const;    void SetRadius(double r);    double GetRaidus() const;    double GetArea() const;    double GetVolume() const;    void Print() const;private:    double height;};#endif
  • Cylinder 是对于 Circle的继承。
  • 此处是private继承,通过调用Circle中的方法,才能修改Circle的私用成员。

circle.cpp

// circle.cpp#include "circle.h"#include <iostream>using namespace std;Circle:: Circle(double r){    raidus = r;}Circle:: ~Circle(){};void Circle:: SetRadius(double r){    raidus = r;}double Circle:: GetRaidus() const{    return raidus;}double Circle:: GetArea() const{    return raidus * raidus * PI;}void Circle:: Print() const{    cout << "r=" << raidus << "  area = " << GetArea()<<endl;}Cylinder:: Cylinder(double r, double h): Circle(r){    height = h;}Cylinder:: ~Cylinder(){};void Cylinder:: SetHeight(double h){    height = h;}double Cylinder:: GetHeight() const{    return this->height;}void Cylinder:: SetRadius(double r){    Circle::SetRadius(r);}double Cylinder:: GetRaidus() const{    return Circle::GetRaidus();}double Cylinder:: GetArea() const{    return (2*PI * GetRaidus() * GetRaidus()+2*PI*GetRaidus()*height);}double Cylinder:: GetVolume() const{    return (PI * GetRaidus() * GetRaidus() *height);}void Cylinder:: Print() const{    cout << "r = " << GetRaidus() << "  ";    cout << "heught = " << GetHeight() << "  ";    cout << "area = " << GetArea() << "  ";    cout << "volume = " << GetVolume() << endl;}
  • 类的实现。没有什么好说的。

main.cpp

// main.cpp#include "circle.h"#include <iostream>using namespace std;void test (){    Circle circle(5);    circle.Print();    circle.SetRadius(10);    circle.Print();    Cylinder cylinder(5, 5);    cylinder.Print();    cylinder.SetRadius(10);    cylinder.SetHeight(10);    cylinder.Print();   }int main(int argc, char const *argv[]){    test();    return 0;}