};
class D1: public B1//公有派生 { public: };
void fun(B0 *ptr)//普通函数 { }
int main()//主函数 {
B0 b0, *p;//声明基类对象和指针 B1 b1;//声明派生类对象 D1 d1;//声明派生类对象 p = &b0;
fun(p);//调用基类B0函数成员 p = &b1;
fun(p);//调用派生类B1函数成员 p = &d1;
fun(p);//调用派生类D1函数成员 ptr->display(); void display() {
cout<<\
return; }
运行结果:
三、程序设计
1、设计四个类,Cpeople、Cstudent、Cteacher、Date他们之间的继承和组合关系图下图所示:根据图中类的属性和方法给出类的定义,并在main函数中给出验证。Main函数自己设计。在定义一个多继承派生类Cgraduat派生自Cstudent、Cteacher基类,并验证类的设计是正确的。
<<实现类>>Cpeople-name-age-sex : char+Cpeople()+display()<<实现类>>Cstudent-inDate : Date-score : float+Cstudent()+display()1*<<实现类>>Cteacher-workDate : Date-department-title+Cteacher()+display()1<<实现类>>Date-year : int-month : int-day : int+getY() : int+getM() : int+getD() : int+display()*
2、写一个程序,定义抽象基类Shape(图形),由它派生出别个类:Circle(圆)、Rectangle(矩形)和Triangle(三角形),由Rectangle(矩形)派生出Squre(正方形),用虚函数分别计算几种图形面积,和每种图形的基本信息。设计主函数main()测试,使用基类指针数组,使它的每一个元素指向一个派生类对象。
Shape+Draw()+Area()Circle-radius : int+Draw()+Area()Rcetangle-width : int-height : int+Draw()+Area()Triangle-width : int-height : int+Draw()+Area()Square+Draw()+Area()