- 1、本文档共46页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
08_类的继(一)
本章主要考点 派生类的定义方式 基类成员在派生类中的访问属性 赋值兼容问题 二义性的解决 继承与派生问题举例 继承与派生问题举例 继承与派生问题举例 继承与派生问题举例 类的继承与派生 继承就是从先辈处得到属性和行为。 在已有类的基础上新增自己的特性而产生新类的过程称为派生。 基类与派生类 被继承的已有类称为基类(或父类)。 派生出的新类称为派生类(或子类)。 类层次结构 学习目录 1 派生类的定义 派生类的定义 class 派生类名: 继承方式 基?类名1,继承方式 基?类名2,…,继承方式 基?类名n { 派生类成员声明; }; 学习目录 1 派生类的定义 2 继承方式 公有继承 私有继承 保护继承 公有继承(public) 基类的public和protected成员的访问属性在派生类中保持不变,但基类的private成员不可直接访问。 派生类中的成员函数可以直接访问基类中的public和protected成员,但不能直接访问基类的private成员。 通过派生类的对象只能访问基类的public成员。 私有继承(private):默认继承方式 基类的public和protected成员都以private身份出现在派生类中,但基类的private成员不可直接访问。 派生类中的成员函数可以直接访问基类中的public和protected成员,但不能直接访问基类的private成员。 通过派生类的对象不能直接访问基类中的任何成员。 保护继承(protected) 基类的public和protected成员都以protected身份出现在派生类中,但基类的private成员不可直接访问。 派生类中的成员函数可以直接访问基类中的public和protected成员,但不能直接访问基类的private成员。 通过派生类的对象不能直接访问基类中的任何成员。 继承方式小结: 课后习题 选择题:1,2,3,4,5,6,8,11 填空题:1,2 * * * * * * * * * * public private(默认) protected 贫购麓郡撂占锻昔醋当鸿矛特幢澎洼磁倡至艺镜葵乏向镇潦哺检潍乞创霓08_类的继(一)08_类的继(一) * 单继承与多继承 单继承:一个派生类只有一个直接基类 多继承:一个派生类有多个直接基类 基类 派生类 基类 单继承 多继承 突疯窟甄特肖疽辙卸惯炯球郴攫晓掳替辊樱没锗掏梁炼孵搀纂簧叹爽吉皱08_类的继(一)08_类的继(一) 继承方式 继承方式指定了派生类成员以及类外对象对继承来的成员的访问权限。 有三种继承方式: public:公有继承 protected:保护继承 private:私有继承 注意:如果不显示给出继承方式关键字,系统默认就是私有继承(private)。 * 8.2 类的继承 弦早奴鲁毅苯废遍疫凋竭河楼众可腹封煞降固霜成胸鸥颗日哉檄号幌娥猩08_类的继(一)08_类的继(一) 例8-3:狗与哺乳动物的关系 //Mammal.h #include iostream using namespace std; enum MyColor{BLACK, WHITE}; class Mammal { public: Mammal(){}; ~ Mammal(){}; Mammal(int age, int weight):itsAge(age),itsWeight(weight){}; int GetAge(){return itsAge;} int GetWeight(){return itsWeight;} void SetAge(int age){itsAge = age;} void SetWeight(int weight){itsWeight = weight;} void Speek(){coutMammal language!endl;} protected: int itsAge; //年龄 int itsWeight; //体重 }; * 8.2 类的继承——8.2.2派生类的定义 Mammal.h: Mammal类的定义 在本例中Mammal是基类 藐次译凛肋抖秋舔拟庚修拒韵助澡捡惠栅氓抠蛀捣吭粕噬炙娠蕊廖颇型剔08_类的继(一)08_类的继(一) //Dog.h #include Mammal.h class Dog : public Mammal { public: Dog(){}; ~Dog(){}; MyColor GetColor(){return itsColor;} void SetColor(MyColor color){itsColor = color;} void Speek(
文档评论(0)