欢迎来到天天文库
浏览记录
ID:9971989
大小:1.24 MB
页数:48页
时间:2018-05-12
《嵌入式linux下c++程序设计--06继承与派生,虚基类》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、嵌入式Linux下QT程序设计主讲:成宝宗主要内容:继承与派生类的继承方式派生类的构造函数派生来的析构函数派生类中基类成员的访问单继承与多继承虚基类其他3类的继承与派生保持已有类的特性而构造新类的过程称为继承。在已有类的基础上新增自己的特性而产生新类的过程称为派生。被继承的已有类称为基类(或父类)。派生出的新类称为派生类。4继承与派生问题举例猫科5继承与派生问题举例6继承与派生问题举例7继承与派生的目的继承的目的:实现代码重用。派生的目的:当新的问题出现,原有程序无法解决(或不能完全解决)时,需要对原有程序
2、进行改造。派生新类这个过程,经历三个步骤:吸收基类成员,改造基类成员和添加新的成员。8派生类的声明class派生类名:继承方式基类名{成员声明;}9继承方式不同继承方式的影响主要体现在:派生类成员对基类成员的访问权限通过派生类对象对基类成员的访问权限三种继承方式公有继承私有继承保护继承10公有继承(public)基类的public和protected成员的访问属性在派生类中保持不变,但基类的private成员不可直接访问。派生类中的成员函数可以直接访问基类中的public和protected成员,但不能直接
3、访问基类的private成员。通过派生类的对象只能访问基类的public成员。11私有继承(private)基类的public和protected成员都以private身份出现在派生类中,但基类的private成员不可直接访问。派生类中的成员函数可以直接访问基类中的public和protected成员,但不能直接访问基类的private成员。通过派生类的对象不能直接访问基类中的任何成员。12保护继承(protected)基类的public和protected成员都以protected身份出现在派生类中,但基
4、类的private成员不可直接访问。派生类中的成员函数可以直接访问基类中的public和protected成员,但不能直接访问基类的private成员。通过派生类的对象不能直接访问基类中的任何成员13protected成员的特点与作用对建立其所在类对象的模块来说,它与private成员的性质相同。对于其派生类来说,它与public成员的性质相同。既实现了数据隐藏,又方便继承,实现代码重用。#includeusingnamespacestd;classA{public:intpublica
5、;protected:intprotecteda;private:intprivatea;};classA1:publicA{public:voidfun(){publica=1;//publicprotecteda=2;//protected//privatea=3;//private}};classA2:privateA{public:voidfun(){publica=1;//privateprotecteda=2;//private//privatea=3;//private}};classA3:p
6、rotectedA{public:voidfun(){publica=1;//protectedprotecteda=2;//protected//privatea=3;//private}};intmain(intargc,char*argv[]){A1t1;A2t2;A3t3;t1.publica=10;/*t1.privatea=10;t1.protecteda=10;t2.publica=20;t2.privatea=20;t2.protecteda=20;t3.publica=30;t3.priv
7、atea=30;t3.protecteda=30;*/}15基类与派生类的对应关系单继承派生类只从一个基类派生。多继承派生类从多个基类派生。多重派生由一个基类派生出多个不同的派生类。多层派生派生类又作为基类,继续派生新的类。16多继承时派生类的声明class派生类名:继承方式1基类名1,继承方式2基类名2,...{成员声明;}注意:每一个“继承方式”,只用于限制对紧随其后之基类的继承。17继承时的构造函数基类的构造函数不被继承,派生类中需要声明自己的构造函数。定义构造函数时,只需要对本类中新增成员进行初始化
8、,对继承来的基类成员的初始化,自动调用基类构造函数完成。派生类的构造函数需要给基类的构造函数传递参数18单一继承时的构造函数派生类名::派生类名(基类所需的形参,本类成员所需的形参):基类名(参数表){本类成员初始化赋值语句;};19构造函数的执行顺序1.调用基类构造函数,调用顺序按照它们被继承时声明的顺序(从左向右)。2.对成员对象进行初始化,初始化顺序按照它们在类中声明的顺序。3.执行派生类的构造函数体中的内
此文档下载收益归作者所有