cout<<\}~B(){cout<<\B...\};intmain(){Bb(1,2,3,4);b.display();b.Add(1,3,5,7);b.display();return0;}(3)#includeusingnamespacestd;classA{public:A(inta):x(a){cout<<\constructor...\}intf(){return++x;}~A(){cout<<\A...\private:intx;};classB:publicvirtualA{private:inty;AAobj;public:B(inta,intb,intc):A(a),y(c),Aobj(c){cout<<\constructor...\intf(){A::f();Aobj.f();return++y;}voiddisplay(){cout1.了解多态性的概念。2.了解虚函数的作用及使用方法。3.了解静态关联和动态关联的概念和用法。4.了解纯虚函数和抽象类的概念和用法。二、实验内容
1.阅读下面的程序,写出程序运行的结果。#includeusingnamespacestd;classBase{protected:intn;public:Base(intm){n=m++;}virtualvoidg1(){cout<<\g4();}virtualvoidg2(){cout<<\voidg3(){cout<<\g4();}voidg4(){cout<<\};classDerive:publicBase{intj;public:Derive(intn1,intn2):Base(n1){j=n2;}voidg1(){cout<<\voidg3(){cout<<\};intmain(){DeriveDobj(1,0);BaseBobj=Dobj;Bobj.g1();cout<<\Base*bp=&Dobj;bp->g1();cout<<\Base&bobj2=Dobj;bobj2.g1();cout<<\Dobj.g1();return0;}2.先建立一个点类Point,包含数据成员x,y(坐标点)。以它为基类,派生出圆类Circle,增加数据成员radius(半径),再以Cirlcle类为直接基类,派生出圆柱体类Cylinder,再增加数据成员height(高)。要求:(1)每个类都有构造函数、用于从键盘获取数据的成员函数set(),用于显示数据的成员函数display()。(2)用虚函数输出各类对象信息。3.先建立一个职工类Employee,包含数据成员name(职工姓名),ID(职工编号)。以它为基类,派生出经理类Manager和技术人员类Technician,在经理类中增加数据成员salary(代表经理的月工资),在技术人员类中增加数据成员wage(代表每小时的工资数)和hours(月工作时数)。在定义类时,所有类中必须包含有构造函数、析构函数、修改和获取所有数据成员的函数,以及纯函数计算职工的工资,输出职工的信息。4.下列shape类是一个表示形状的抽象类,area()为求图形面积的函数,total()则是一个通用的用以求不同形状的图形面积总和的函数。请从shape类派生三角形类(triangle)、矩形类(rectangle),并给出具体的求面积函数。实验六、面向对象的妥协(2学时)一、实验目的
1.掌握友元的概念、友元函数的定义与使用方法。2.掌握静态数据成员与静态成员函数的定义与使用方法。