如果您无法下载资料,请参考说明:
1、部分资料下载需要金币,请确保您的账户上有足够的金币
2、已购买过的文档,再次下载不重复扣费
3、资料包下载后请先用软件解压,在使用对应软件打开
第8章继承与派生本章学习要求:8.1继承与派生的概念8.2单继承8.2.1单继承的定义8.2.2继承方式以及派生类成员的访问基类成员访问控制8.2.3派生类对象的初始化和撤销例派生类对象的初始化。classparent{public:parent(inti){x=i;}prent(){x=0;}private:intx;};classderived:publicparent{public:derived(){//默认调用基类的无参数构造函数y=0;}derived(inti){y=i;}//默认调用基类的无参数构造函数//parent(a)调用基类的构造函数初始化匿名基类对象derived(inta,intb):parent(a),y(b){}private:inty;};intmain(){derivedd1;//调用derived::derived()和parent::parent()derivedd2(10);//调用derived::derived(int)和parent::parent()derivedd3(10,20);//用derived::derived(int,int)和parent::parent(int)}例多级继承的访问权限。实现右图中的ABC多级继承关系解:定义类层次结构中的类。classA{public:voidafun1(){}protected:voidafun2(){};private:inta;};classB:publicA{public:voidbfun1(){}protected:voidbfun2(){}private:doubleb;};classC:protectedB{public:voidcfun1(){}protected:voidcfun2(){}private:charc;};8.3多重继承8.3.1多重继承的定义8.3.2成员名二义性8.3.3重复继承—虚基类例虚继承演示。#include<iostream>usingnamespacestd;classA{public:A(inta){cout<<"A::A(int)\n";x=a;}intGetX(){returnx;}private:intx;};classB:virtualpublicA{public:B(inta):A(a){cout<<"B::B(int)\n";}};classC:virtualpublicA{public:C(inta):A(a){cout<<"C::C(int)\n";}};classD:publicB,publicC{public:D(inta):A(a),B(a),C(a){cout<<"D::D(int)\n";}};intmain(){Dd(10);cout<<d.GetX();}8.4继承与组合8.5子类型