欢迎来到天天文库
浏览记录
ID:59490400
大小:676.00 KB
页数:32页
时间:2020-09-13
《第8章_继承与派生ppt课件.ppt》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、第8章继承与派生1目录8.1继承和派生的概念8.2派生类成员的访问控制8.3派生类的构造函数和析构函数8.4多重继承28.1继承与派生的概念继承就是新的类从已有类得到已有的属性与服务(即从已有类产生新类的过程)。已有类称为基类或父类产生的新类称为派生类或子类从基类产生派生类的方法有2种:单继承只允许一个派生类从一个唯一的基类继承产生多重继承(或多继承)允许一个派生类从两个或两个以上的基类中继承产生利用类的“继承”,可以将原来的程序代码重复使用,从而减少了程序代码的冗余度,符合软件重用的目标。基类
2、:派生类:大学学生大学生研究生大专生本科生博士生硕士生研究生职工在职研究生38.1继承与派生——派生类的声明单继承是从现有的一个基类创建一个新类的过程定义单继承的格式:class派生类名:[public/private/protected]基类名{<派生类数据成员和函数成员定义>}已有的类继承原有类特性而生成的新类继承方式,默认为privateclassStudent{public:intnum;charname[10];charsex;voiddisplay();};classStudent1
3、:publicStudent{public:intage;;charaddr[20];voiddisplay();};4classStudent{public:intnum;charname[10];charsex;voiddisplay();};classStudent1:publicStudent{public:intage;;charaddr[20];voiddisplay();};8.1继承与派生——派生类的声明派生类中的成员包括从基类继承过来的成员和自己增加的成员两大部分。intage
4、;charaddr[30];voiddisplay();58.2派生类成员的访问控制——公有继承公有继承、私有继承、保护继承基类的公用成员和保护成员在派生类中保持原有访问属性,其私有成员仍为基类私有。类访问控制符从自身类访问从派生类访问从类外部的对象访问public是是是protected是是否private是否否6例公有继承访问规则的例子。#includeclassParent//基类{public:intpubD;protected:intprotD;private:
5、intprivD;};classSon:publicParent//公有继承{public:voidfn(){intx;x=pubD;//有效x=protD;//有效x=privD;}//错误};voidmain(){Parentp;p.pubD=10;p.protD=10;//错误p.privD=10;//错误Sons;//派生类对象s.pubD=20;//有效s.protD=20;//错误s.privD=20;//错误}派生类可直接访问基类的公有和保护成员外部对象不能直接访问自身和基类的私有
6、和保护成员类访问控制符从自身类访问从派生类访问从类外部的对象访问public是是是protected是是否private是否否78.2派生类成员的访问控制——私有继承除基类的私有成员将继承为派生类的私有成员外,基类的公有成员和保护成员也将成为派生类的私有成员。类访问控制符从自身类访问从派生类访问从类外部的对象访问public是是否protected是是否private是否否8例私有继承的例子。#includeclassParent//基类{protected:intx;p
7、ublic:voidsetx(){x=0;}voiddisplay(){cout<<"x="<8、生类成员的访问控制——保护继承除基类的私有成员将继承为派生类的私有成员外,基类的公有成员和保护成员将成为派生类的保护成员。类访问控制符从自身类访问从派生类访问从类外部的对象访问public是是否protected是是否private是否否10例类的保护成员的使用。#includeclassdemo{protected:intj;public:demo(){j=0;}voidadd(inti){j+=i;}voidsub(inti){j-=i;}voiddisplay(){
8、生类成员的访问控制——保护继承除基类的私有成员将继承为派生类的私有成员外,基类的公有成员和保护成员将成为派生类的保护成员。类访问控制符从自身类访问从派生类访问从类外部的对象访问public是是否protected是是否private是否否10例类的保护成员的使用。#includeclassdemo{protected:intj;public:demo(){j=0;}voidadd(inti){j+=i;}voidsub(inti){j-=i;}voiddisplay(){
此文档下载收益归作者所有