定义基类Base

来源:互联网 发布:java第三方登录原理 编辑:程序博客网 时间:2024/06/05 19:17

【6.13】定义基类Base,其数据成员为高h,定义成员函数disp为虚函数。然后再由High派生出长方体类Cuboid与圆柱体Cylinde。并在两个派生类中定义成员函数disp为虚函数。在主函数中,用基类Base定义指针变量pc,然后用指针pc动态调用基类和派生类中虚函数disp,显示长方体与圆柱体的体积。

#include<iostream>    using namespace std;class Base{public:    Base(){ }    Base(double h1){ h=h1;}virtual void disp()        //虚函数disp{ cout<<"长方体和圆柱体的高度都是:"<<h<<endl;  }     protected:    double h;               //高度};class Cuboid:public Base{   //长方体类  public:    Cuboid(double l=0,double w=0,double h=0):Base(h){len=l, wid=w;}  void disp()               //虚函数disp  { cout<<"长方体:"<<endl;    cout<<"  长度="<<len<<endl;    cout<<"  宽度="<<wid<<endl;    cout<<"  高度="<<h<<endl;    cout<<"  长方体的体积="<<len*wid*h<<endl;    }    private:    double len,wid;           //长度和宽度};class Cylinder:public Base {  //圆柱体类  public:    Cylinder(double r1=0,double h1=0):Base(h1){ r=r1;}    void disp()               //虚函数disp    {    cout<<"圆柱体:"<<endl;    cout<<"  半径="<<r<<endl;    cout<<"  高度="<<h<<endl;    cout<<"  圆柱体的体积="<<r*r*3.14*h<<endl;    }private:    double r;                 //半径};int main(){ Base *pc;  Cuboid cu(5,7,9);  Cylinder cy(5,7);  pc=&cu;  pc->disp();  pc=&cy;  pc->disp();return 0;}


0 0