面向对象7继承性与派生类课件.ppt

面向对象7继承性与派生类课件.ppt

ID:57188658

大小:48.50 KB

页数:27页

时间:2020-08-02

面向对象7继承性与派生类课件.ppt_第1页
面向对象7继承性与派生类课件.ppt_第2页
面向对象7继承性与派生类课件.ppt_第3页
面向对象7继承性与派生类课件.ppt_第4页
面向对象7继承性与派生类课件.ppt_第5页
资源描述:

《面向对象7继承性与派生类课件.ppt》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、第七章继承性与派生类基类、派生类单继承、多继承7.1类的层次概念层次与复用成员的继承类的两种使用方法:实例化使用继承使用将概念和实现转变成类层次派生类是基类的具体化派生类是基类的延迟定义派生类是基类的组合7.2单继承定义格式class派生类名:[访问控制]基类名{成员列表}访问控制privateprotectedpublic公有基类基类的公有成员等价于派生类的公有成员。派生类的对象及其成员函数可以访问基类的公有成员。保护基类基类的公有成员等价于派生类的保护成员。派生类的成员函数可以访问基类的公有成员。派生类的对象不可以访问基类的公有成员。私有基

2、类基类的公有成员等价于派生类的私有成员。只有派生类的成员函数可以访问基类的私有成员。部分公开使基类部分公有成员成为派生类的公有成员。base::成员名;在派生类中访问声明不允许对基类成员中私有成员进行访问。例:7_2_1_2.cpp基类性质继承性质派生类性质publicpublicpublicprotectedpublicprotectedprivatepublic不能访问publicprotectedprotectedprotectedprotectedprotectedprivateprotected不能访问publicprivatepri

3、vateprotectedprivateprivateprivateprivate不能访问7.2.2成员访问控制公有基类基类成员对基类对象的可见性:公有成员可见,其它不可见。基类成员对派生类的可见性:公有成员和保护成员可见,私有成员不可见。基类成员对派生类对象的可见性公有成员可见,私有成员和保护成员不可见。例:7_2_2.cppclassbase{private:inti1;protected:intj1;private:intf1();};classdrv:publicbase{private:inti2;protected:intj2;pu

4、blic:intf2();};Voidmain(){drvd1;}保护基类基类成员对基类对象的可见性:公有成员可见,其它不可见。基类成员对派生类的可见性:公有成员和保护成员可见,私有成员不可见。公有成员和保护成员对派生类的派生类的成员可见基类成员对派生类对象的可见性所有成员都不可见私有基类基类成员对基类对象的可见性:公有成员可见,其它不可见。基类成员对派生类的可见性:公有成员和保护成员可见,私有成员不可见。所有成员对派生类的派生类的成员不可见基类成员对派生类对象的可见性所有成员都不可见7.2.3构造函数参数的传递派生类名::派生类名(派生类参数

5、表):基类名(基类参数表){派生类初始化代码}基类没有构造函数或构造函数没有参数基类有构造函数且构造函数都有参数构造函数调用顺序基类的构造函数内部成员对象的构造函数派生类的构造函数析构函数的调用顺序与构造函数调用顺序相反例:7_2_3_1.cpp例子7_2_4_1.cpp7_2_4_2.cpp多继承的概念继承所有基类的成员变量和成员函数inta;intb;intc;inta;intx;inty;inta;intb;intc;inta;intx;inty;intk;多继承的定义格式:Class派生类:访问控制基类[,访问控制基类]{定义体}当有多

6、个同名的继承成员时,可以用域说明符号::来限定。例:7_3_0_1.cpp构造函数的调用顺序基类的构造函数成员对象的构造函数派生类的构造函数例:7_3_0_1.cpp析构函数的调用顺序派生类的析构函数成员对象的析构函数基类的析构函数多重公共基类parentprivate1private2derived_1:virtulparentprivate1private2private3derived_:virtulparent2private1private2private4derived_1_2private1,private2,private3,p

7、rivate4,private12例:7_3_2_1.cpp虚基类虚基类的意义在继承路径上,所有虚基类的成员变量只有一份。虚基类的构造函数必须由最新派生出来的类负责初始化虚基类的构造函数先于非虚基类的构造函数执行。例:若定义classL{...};classA:virtualL{...};classB:virtualL{...};classC:B,A{...};则在类C中只有一份类L的成员变量。例:7_2_3_2.cpp虚基类parentprivate1private2derived_1:virtualparentprivate1Private

8、2private3derived_2:virtualparentprivate1Private2private4derived_1_2private1

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。