- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
回顾
继承和派生的基本概念
继承定义
派生类重定义基类函数
继承关系中构造函数、析构函数之间的关系
1
目标
基类和派生类对象的转换
类指针的使用
多重继承
复合与继承的关系
虚基类概念
虚基类构造函数
虚继承
2
静态成员与继承
基类的静态成员没有所谓的继承
基类和其派生类共同拥有静态成员
静态成员的存取能通过基类、派生类基类::静态数据成员基类::静态成员变量(参数表)
派生类::静态数据成员派生类::静态成员变量(参数表)
3
friend与继承(暂不要求)
基类的friend类/函数在继承后不能存取派生类的成员,但是可以存取派生类对象中基类部分的成员.
4
类指针
类名也可以用来声明指针
类的指针可以操作类的对象,也可以操作派生类的对象(派生类对象也是基类对象)
派生类对象和基类对象可以通过指针统一操作和管理
5
类指针的使用
类指针操作类对象的几种可能
基类指针操作基类对象(自然)
派生类指针操作派生类对象(自然)
基类指针操作派生类对象——把派生类对象作为基类对象看(安全)
派生类指针操作基类对象——把基类对象作为派生类对象看(危险)
6
派生类对象基类对象的转换(不必纠结下面的说明)
当派生类以Public方式继承基类时,编译器可自动执行的转换(向上转型 upcasting 安全转换)
派生类对象自动转换为基类对象(特有的成员消失)
派生类对象指针自动转化为基类对象指针
派生类对象引用自动转化为基类对象引用
当派生类以private/protected方式继承基类时
派生类对象指针(引用)转化为基类对象指针(引用)需用强制类型转化(基类)派生类对象 (基类*)派生类对象指针
不能把派生类对象强制转换为基类对象
7
基类对象派生类对象的转换(不必纠结下面的说明)
基类对象指针(引用)可用强制类型转换为派生类对象指针(引用), 而基类对象无法执行这类转换.
向下转型不安全,没有自动转换的机制
可以使用static_cast运算符进行强制类型转换,但仅限派生类以public方式继承基类(指针和引用).
8
继承中的类型转换6-1
//文件people.h
#if !defined __PEOPLE__H__
#define __PEOPLE__H__
class People {
public:
People(char *str, int s); //构造函数中参数s大于0表示男性,否则为女性
~People();
int getSex();
char* getName();
private:
char *name;
int sex;
};
#endif
9
继承中的类型转换6-2
//文件people.cpp
#include string.h
#include iostream.h
#include people.h
People::People(char *str, int s){
name = new char[strlen(str)+1];
strcpy(name, str);
if (s0)
sex = 1; //男性
else
sex = 0; //女性
}
People::~People(){
delete []name;
}
int People::getSex(){
return sex;
}
char * People::getName(){
static char str[128];
strcpy(str,name);
return str;
}
10
继承中的类型转换6-3
//文件teacher.h
#include people.h
#if !defined TEACHER_H
#define TEACHER_H
class Teacher : public People {
public:
Teacher(char *str, int s, char *sch, int y);
~Teacher();
int getWorkYears();
char *getSchool();
private:
char *school;
int years;
};
#endif
11
继承中的类型转换6-4
#include string.h //文件 teacher.cpp
#include iostream.h
#include teacher.h
Teacher::Teacher(char *str,int s,
char *sch,int y):People(str, s)
{ //调用基类的构造函数
school = new
您可能关注的文档
- 第十八章所有者权益.pdf
- ia-32架构汇编语言程序设计第五章.pptx
- td网络质量健康度问题说明.pptx
- 贵州历年教师招聘教育学心理学试题及答案共六份试卷.pdf
- 医学超声课程final.pdf
- 外墙无机砂浆保温分项工程自评报告1.pdf
- 401规划原理串讲点题班讲义.pdf
- 计算机原理与硬件协处理器1.pdf
- 参考121款精美模版1.pptx
- radius服务器acs5.2和无线控制器动态vlan分配配置举例.pdf
- 2025广西北海市银海区机关后勤服务中心公益性岗位人员招聘1人备考笔试试题及答案解析.docx
- 2025广东清远市清新区卫生健康局下属事业单位招聘专业技术人员58人备考考试题库及答案解析.docx
- 2026江西省宜春市教育体育局直属学校面向高校毕业生招聘教师25人参考考试题库及答案解析.docx
- 2026广东农信校园招聘参考笔试题库及答案解析.docx
- 2025华电电力科学研究院有限公司面向华电系统内外公开招聘备考笔试题库及答案解析.docx
- 2025克拉玛依市先进科技联合研究院面向社会招聘参考笔试题库及答案解析.docx
- 国家粮食和物资储备局垂直管理局事业单位2026年应届毕业生公开招聘【27人】备考考试题库及答案解析.docx
- 2026年河北张家口经开区工信和科技局招聘青年就业见习岗位模拟笔试试题及答案解析.docx
- 2025年云南滇中新区股权投资有限公司招聘(5人)备考考试试题及答案解析.docx
- 2025湖南省人才发展集团有限公司所属子公司财务副总经理选聘1人模拟笔试试题及答案解析.docx
原创力文档


文档评论(0)