8 继承与派.ppt

  1. 1、本文档共91页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
8 继承与派

第8单元 继承与派生;引言;继承与派生问题举例;引言;8.1 基本概念;8.1 基本概念;继承:根据一个类创建一个新类的过程。继承目的就是实现代码重用; 派生:从已有类产生新类的过程就是类的派生。 派生的目的是,当新的问题出现,原有程序无法解决(或不能完全解决)时,需要对原有程序进行改造; 基类:通常将用来派生新类的类称为基类,又称为父类; 派生类:派生出来的新类称为派生类,又称为子类。 ; 派生类是特殊的基类,基类是派生类的抽象描述。 派生类自动继承了基类的成员,但并不等同于基类,否则就没有派生的必要了。例如基类的私有成员不能被继承。; class 派生类名:继承方式 基类名 { 派生类新定义成员 };;其中,继承方式有三种: 公有继承:public 私有继承:private 保护继承:protected 缺省情况下为私有继承。 不同继承方式的影响主要体现在: 派生类成员对基类成员的访问控制; 派生类对象对基类成员的访问控制。;class Person //定义基类Person { public: Person(const char* Name,int Age,char Sex); char* GetName() { return(name); } int GetAge(); char GetSex(); void Display(); private: char name[11]; char sex; protected: int age; };;Person::Person(const char *Name,int Age,char Sex) { strcpy(name,Name); age=Age; sex=Sex; } int Person::GetAge() { return(age); } char Person::GetSex() { return(sex); } void Person::Display() { coutname:name′\t′; coutage:age′\t′; coutsex:sexendl; };class Student:public Person { public:   Student(char* pName,int Age,char Sex,char* pId,float Score) :Person(pName,Age,Sex) { strcpy(id,pId); //学生类的数据初始化 score=Score; } char* GetId(char* pId) //派生类的新成员 { return(id); } float GetScore()   //派生类的新成员 { return score; } void Display(); //派生类的新成员 private: char id[9]; float score; };;void main() { char name[11]; coutEnter a person′s name:; cinname; Person p1(name,29,′m′); //基类对象 p1.Display(); //基类对象访问基类公有成员函数 char pId[9]; coutEnter a student’s name:; cinname; Student s1(name,19,′f′95); //派生类对象 //派生类对象访问基类成员函数 coutname:s1.GetName()′\t′; coutid:s1.GetId(pId)′\t′; coutage:s1.GetAge()′\t′; coutsex:s1.GetSex()′\t′; coutscore:s1.GetScore()endl; }; 分析派生新类的过程可知,派生类的生成经历了三个步骤: 吸收基类成员 派生类吸收基类的大部分成员,不吸收构造函数和析构函数等 改造基类成员 由于基类成员在派生类中可能不起作用,但也被继承下来,在生成对象时占用内存空间,造成资源浪费。 (1).通过派生类定义时的继承方式来控制。 (2).定义同名成员屏蔽基类成员。 添加派生类新成员 根据需要,在派生类中添加新成员,保证派生类在功能上有

文档评论(0)

wst34008 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档