实验三继承、多态和虚函数 班级:13电科2学号:Xb 13640220姓名:饶君燕 一、实验目的: (1) 了解面向对象程序设计中继承性、多态性的概念; (2) 掌握单继承、多重继承中基类成员访问属性的变化规律及访问方法; (3) 掌握类族中构造函数和析构函数的定义方法及调用顺序; (4) 掌握虚函数的定义和使用方法; 二、实验任务: 1. 分别采用公有继承、私有继承、保护继承完成类的设计。 基类如下: class Student (public: 1;} void get_value() (cin»num»name»sex;} void display() (cout«nnum: “«num«endl; cout«“name: n«name«endl; cout«“sex: “«sex«end private : int num; string name; char sex; }; 通过继承Student类,完成派生类Student 1的设计(提示:应增加成员函数void get_value_l()及 void display_l();数据成员 int age 及 char addr[30]),并写出 派星类的实现和演示程序。W程序中应包括接受输入数据的函数。当程序运行时, 输入num, name, sex, age, addr的值,程序应能输出以上5个数据的值。 2. 对有继承关系的程序结构进行分析。 class A//A为基类 (public: void fl(); int i; protected: void f2(); intj; private: int k; }; class B: public A (public: void f3(); protected: int m; private: int n; }; 〃B为A的公用派生类 class C: public B (public: void f4(); private: int p; }; //C为B的公用派生类 int main() {Aal; //al是基类A的对象 Bbl; //bl是派生类B的对象 Cel; return 0; //cl是派生类C的对象 问题: (1) 在main函数中能否用通过派生类B的对象bl来引用从基类A继承来的 成员i, j, k? (2) 派生类B中的成员函数能否调用基类A中的成员函数fl、f2? (3) 派生类B中的成员函数能否引用基类A中的i, j, k? (4) 能否在main函数中通过C类对象cl引用基类A的成员i, j, k和类B的 成员m, n? (5) 能否在main函数中用C类对象cl以cl.fl(),cl.f2(),cl.f3(),cl.f4()的形式调 用 fl(),f2(),G(),f4()? C6)派生类C的成员函数f4能否调用基类A的成员函数fl,f2及B类中的f3? 3. 继承关系下,构造函数的调用顺序。 #include using namespace std; class A public: A(){a=O;b=O;} A(inti){a=i;b=O;} A(int i,int j){a=i;b=j;} void display。{cout<<”a=”<