《实验9 继承与派生2》由会员分享,可在线阅读,更多相关《实验9 继承与派生2(13页珍藏版)》请在金锄头文库上搜索。
1、实验九 继承与派生继承与派生 2 2【实验目的】 (1) 理解继承的含义,掌握派生类的定义方法和实现; (2) 理解公有继承下基类成员对派生类成员和派生类对象的可见性,能正确地 访问继承层次中的各种类成员; (3) 理解保护成员在继承中的作用,能够在适当的时候选择使用保护成员以便 派生类成员可以访问基类的部分非公开的成员; 【实验内容 1】上机分析下面程序,以断点测试继承下构造函数和析构函数的上机分析下面程序,以断点测试继承下构造函数和析构函数的 执行顺序执行顺序 1、程序运行结果 #include class object private: int Weight; public: objec
2、t() cout class BaseClass public: void fn1(); void fn2(); ; void BaseClass:fn1() cout fn1(); pBaseClass-fn2(); pDerivedClass-fn1(); pDerivedClass-fn2(); 运行结果: 调用派生类的函数 fn1() 调用派生类的函数 fn2()调用基类的函数 fn1() 调用基类的函数 fn2() 调用派生类的函数 fn1() 调用派生类的函数 fn2()3、程序运行结果#include class P public:P(int p1,int p2) pri1=p1
3、;pri2=p2;int inc1() return +pri1;int inc2() return +pri2;void display() cout class A int p1,p2; public: A(int a,int b) p1=a; p2=b; int Move1() return +p1; int Move2() return +p2; void Show() cout class B public: B();B(int i);B();void Print() const;private:int b; ; B:B() b=0;cout using namespace std;
4、 class B public: B();B(int i);B();void Print() const;private:int b; ; B:B() b=0;cout class B1 public:B1(int i) b1=i; cout using namespace std; class B1 public:B1(int i) b1=i; cout using namespace std;/姓名、年龄、性别、地址、电话 class Teacher public:Teacher(string n,int a,char s,string add,string p,string t): na
5、me(n),age(a),sex(s),address(add),phonenum(p),title(t) void display(); private: string name,address,phonenum,title; int age; char sex; ; class Cadre public: Cadre(string n,int a,char s,string add,string p,string pp): name(n),age(a),sex(s),address(add),phonenum(p),post(pp) private: string name,address,phonenum,post; int age; char sex; class Teacher_Cadre:public Teacher,public Cadre public:Teacher_Cadre() ; int main()