欢迎来到天天文库
浏览记录
ID:55973744
大小:5.21 MB
页数:182页
时间:2020-06-13
《c++面向对象程序设计 第五章 继承与派生.ppt》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、C++面向对象程序设计授课人:髙悟实第一章C++的初步知识01目录CONTENTS第二章类和对象02第三章关于类和对象的进一步讨论03第四章运算符重载04第五章继承与派生05第六章多态性与虚函数06第七章输入输出流07继承与派生第五章5.2派生类的声明方式5.3派生类的构成5.4派生类成员的访问属性类型兼容规则5.5派生类的构造函数和析构函数继承与派生5.6多重继承5.1继承与派生的概念C++的继承机制实现软件可重用。有时两个类的内容基本相同或有一部分相同。例如已声明了类student:classStudent{pri
2、vate:intnum;stringname;charsex;public:voiddisplay(){cout<<"num:"<3、<<"num:"<4、作类的派生。5.1继承与派生的概念一个基类可以派生出多个派生类,每个派生类又可以作为基类再派生出新的派生类。一个派生类只从一个基类派生,称作单继承。用图5.3表示。5.1继承与派生的概念图5.2图5.3一个派生类也可从多个基类派生,也就是说一个派生类可以有两个或多个基类。一个派生类有两个或多个基类的称作多重继承。用图5.4表示。基类和派生类的关系可以表述为:派生类是基类的扩充,而基类是派生类的抽象。5.1继承与派生的概念图5.4使用派生类要先声明,声明的格式为class派生类名:[继承方式]基类名{派生类新增成员声明}5、;继承方式包括:public、private、protected。如果省略,系统默认为private。例:假定已经声明一个基类student,在它基础上通过单继承建立一个派生类student1:5.2派生类的声明方式classStudent1:publicStudent{private:intage;stringaddr;public:voiddisplay_1(){cout<<"age:"<6、基类继承过来的成员和自己增加的成员。继承基类成员体现了同一基类的派生类都具有的共性,而新增加的成员体现了派生类的个性。5.3派生类的构成(1)从基类接收成员。派生类将基类除构造函数和析构函数外的所有成员接收过来。(2)调整从基类接收的成员。一方面可以通过继承方式改变基类成员在派生类中的访问属性,另一方面可以在派生类中声明一个与基类成员同名的成员屏蔽基类的同名成员,注意如是成员函数不仅要函数名相同,而且函数的参数也要相同,屏蔽的含义是用新成员取代旧成员。(3)在声明派生类时增加成员,它体现了派生类对基类功能的扩充。(4)7、在声明派生类时,还要自己定义派生类的构造函数。5.3派生类的构成派生类中包含了基类成员和派生类成员,就产生了这两部分成员的关系和访问属性的问题。这个关系由基类成员的访问属性和派生类的继承方式组合决定。5.4派生类成员的访问属性当派生类的继承方式为public(公有)属性时,在派生类中,基类的公有成员和保护成员在派生类中的访问属性没有变化,即分别作为派生类的公有成员和保护成员,派生类的成员可以直接访问它们。但是,派生类的成员无法直接访问基类的私有成员。保护私有成员是一条重要的原则。5.4.1公用继承例5.1派生类访问公有8、继承的基类成员。5.4.1公用继承classStudent//声明基类{private:intnum;stringname;charsex;public:voidget_value(){cin>>num>>name>>sex;}voiddisplay(){cout<<"num:"<
3、<<"num:"<4、作类的派生。5.1继承与派生的概念一个基类可以派生出多个派生类,每个派生类又可以作为基类再派生出新的派生类。一个派生类只从一个基类派生,称作单继承。用图5.3表示。5.1继承与派生的概念图5.2图5.3一个派生类也可从多个基类派生,也就是说一个派生类可以有两个或多个基类。一个派生类有两个或多个基类的称作多重继承。用图5.4表示。基类和派生类的关系可以表述为:派生类是基类的扩充,而基类是派生类的抽象。5.1继承与派生的概念图5.4使用派生类要先声明,声明的格式为class派生类名:[继承方式]基类名{派生类新增成员声明}5、;继承方式包括:public、private、protected。如果省略,系统默认为private。例:假定已经声明一个基类student,在它基础上通过单继承建立一个派生类student1:5.2派生类的声明方式classStudent1:publicStudent{private:intage;stringaddr;public:voiddisplay_1(){cout<<"age:"<6、基类继承过来的成员和自己增加的成员。继承基类成员体现了同一基类的派生类都具有的共性,而新增加的成员体现了派生类的个性。5.3派生类的构成(1)从基类接收成员。派生类将基类除构造函数和析构函数外的所有成员接收过来。(2)调整从基类接收的成员。一方面可以通过继承方式改变基类成员在派生类中的访问属性,另一方面可以在派生类中声明一个与基类成员同名的成员屏蔽基类的同名成员,注意如是成员函数不仅要函数名相同,而且函数的参数也要相同,屏蔽的含义是用新成员取代旧成员。(3)在声明派生类时增加成员,它体现了派生类对基类功能的扩充。(4)7、在声明派生类时,还要自己定义派生类的构造函数。5.3派生类的构成派生类中包含了基类成员和派生类成员,就产生了这两部分成员的关系和访问属性的问题。这个关系由基类成员的访问属性和派生类的继承方式组合决定。5.4派生类成员的访问属性当派生类的继承方式为public(公有)属性时,在派生类中,基类的公有成员和保护成员在派生类中的访问属性没有变化,即分别作为派生类的公有成员和保护成员,派生类的成员可以直接访问它们。但是,派生类的成员无法直接访问基类的私有成员。保护私有成员是一条重要的原则。5.4.1公用继承例5.1派生类访问公有8、继承的基类成员。5.4.1公用继承classStudent//声明基类{private:intnum;stringname;charsex;public:voidget_value(){cin>>num>>name>>sex;}voiddisplay(){cout<<"num:"<
4、作类的派生。5.1继承与派生的概念一个基类可以派生出多个派生类,每个派生类又可以作为基类再派生出新的派生类。一个派生类只从一个基类派生,称作单继承。用图5.3表示。5.1继承与派生的概念图5.2图5.3一个派生类也可从多个基类派生,也就是说一个派生类可以有两个或多个基类。一个派生类有两个或多个基类的称作多重继承。用图5.4表示。基类和派生类的关系可以表述为:派生类是基类的扩充,而基类是派生类的抽象。5.1继承与派生的概念图5.4使用派生类要先声明,声明的格式为class派生类名:[继承方式]基类名{派生类新增成员声明}
5、;继承方式包括:public、private、protected。如果省略,系统默认为private。例:假定已经声明一个基类student,在它基础上通过单继承建立一个派生类student1:5.2派生类的声明方式classStudent1:publicStudent{private:intage;stringaddr;public:voiddisplay_1(){cout<<"age:"<6、基类继承过来的成员和自己增加的成员。继承基类成员体现了同一基类的派生类都具有的共性,而新增加的成员体现了派生类的个性。5.3派生类的构成(1)从基类接收成员。派生类将基类除构造函数和析构函数外的所有成员接收过来。(2)调整从基类接收的成员。一方面可以通过继承方式改变基类成员在派生类中的访问属性,另一方面可以在派生类中声明一个与基类成员同名的成员屏蔽基类的同名成员,注意如是成员函数不仅要函数名相同,而且函数的参数也要相同,屏蔽的含义是用新成员取代旧成员。(3)在声明派生类时增加成员,它体现了派生类对基类功能的扩充。(4)7、在声明派生类时,还要自己定义派生类的构造函数。5.3派生类的构成派生类中包含了基类成员和派生类成员,就产生了这两部分成员的关系和访问属性的问题。这个关系由基类成员的访问属性和派生类的继承方式组合决定。5.4派生类成员的访问属性当派生类的继承方式为public(公有)属性时,在派生类中,基类的公有成员和保护成员在派生类中的访问属性没有变化,即分别作为派生类的公有成员和保护成员,派生类的成员可以直接访问它们。但是,派生类的成员无法直接访问基类的私有成员。保护私有成员是一条重要的原则。5.4.1公用继承例5.1派生类访问公有8、继承的基类成员。5.4.1公用继承classStudent//声明基类{private:intnum;stringname;charsex;public:voidget_value(){cin>>num>>name>>sex;}voiddisplay(){cout<<"num:"<
6、基类继承过来的成员和自己增加的成员。继承基类成员体现了同一基类的派生类都具有的共性,而新增加的成员体现了派生类的个性。5.3派生类的构成(1)从基类接收成员。派生类将基类除构造函数和析构函数外的所有成员接收过来。(2)调整从基类接收的成员。一方面可以通过继承方式改变基类成员在派生类中的访问属性,另一方面可以在派生类中声明一个与基类成员同名的成员屏蔽基类的同名成员,注意如是成员函数不仅要函数名相同,而且函数的参数也要相同,屏蔽的含义是用新成员取代旧成员。(3)在声明派生类时增加成员,它体现了派生类对基类功能的扩充。(4)
7、在声明派生类时,还要自己定义派生类的构造函数。5.3派生类的构成派生类中包含了基类成员和派生类成员,就产生了这两部分成员的关系和访问属性的问题。这个关系由基类成员的访问属性和派生类的继承方式组合决定。5.4派生类成员的访问属性当派生类的继承方式为public(公有)属性时,在派生类中,基类的公有成员和保护成员在派生类中的访问属性没有变化,即分别作为派生类的公有成员和保护成员,派生类的成员可以直接访问它们。但是,派生类的成员无法直接访问基类的私有成员。保护私有成员是一条重要的原则。5.4.1公用继承例5.1派生类访问公有
8、继承的基类成员。5.4.1公用继承classStudent//声明基类{private:intnum;stringname;charsex;public:voidget_value(){cin>>num>>name>>sex;}voiddisplay(){cout<<"num:"<
此文档下载收益归作者所有