#include<iostream>
using namespace std;
class Base{
public:
Base(double h1)
{h=h1;}
virtual void disp()
{}
protected:
double h;
};
class Cuboid :public Base{
public:
Cuboid(double h1, double l1, double w1) :Base(h1)
{
l = l1;
w = w1;
}
virtual void disp()
{
cout << "正方体的体积为:" <<l*w*h<< endl;
}
protected:
double l;
double w;
};
class Cylinder :public Base {
public:
Cylinder(double h1, double r1) :Base(h1)
{
r = r1;
}
virtual void disp()
{
cout << "圆柱体的体积为:" << 3.14*r*r*h << endl;
}
protected:
double r;
};
int main()
{
Base *pc;
Cuboid cu(2.0,2.0,4.0); Cylinder cy(3.0,2.0);
pc = &cu;
pc->disp();
pc = &cy;
pc->disp();
return 0;
}
【6.13】定义基类Base,其数据成员为高h,定义成员函数disp为虚函数。然后再由Base派生出长方体类Cuboid与圆柱类Cylinder。并在两个派生类中定义成员函数disp为虚函数。在主函数中,用基类Base定义指针变量pc,然后用指针pc动态调用基类与派生类中虚函数disp,显示长方体与圆柱体的体积。