C++高级语言程序设计第八章解读.ppt

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

* int main(){ TCircle c(1,2,3); coutTCircle c\t; c.Show(); coutendl; ? //TShape* ps = c; TShape* ps = dynamic_castTShape*(c); //基类对象指针指向 //派生类对象 if(0!=ps) { coutps=c\t\t; ps-Show(); coutendl; } return 0; } //Main09.cpp //本文件的代码除了main()函数之外,均与Main08.cpp相同 #include iostream using namespace std; class TShape { protected: int x, y; public: TShape(int mx=0, int my=0) { x=mx; y=my; } void Show() {coutx=x\t y=y;} }; class TCircle : public TShape { protected: int r; public: TCircle(int mx=0, int my=0, int mr=1): TShape(mx, my) { r = mr; } void Show() {TShape::Show();cout\tr=r; } }; 例8-9基类对象指针指向派生类对象 * 北京邮电大学信息与通信工程学院 -*- 8.4.2 基类到派生类的转换 8.4.2 基类到派生类的转换 C++编译器可以自动将派生类对象转换为基类对象(隐式类型转换) 从基类到派生类的自动转换是不存在的 //以下代码仅为示例 TShape s; TCircle c = s; //错误!不能将基类转换为派生类 TCircle* pc = s; //错误!不能将基类转换为派生类 TCircle rc = s; //错误!不能将基类转换为派生类 总结 类的继承性及其相关概念 派生类可以以公有、保护和私有3种方式继承基类 派生类能够继承基类中除构造函数和析构函数之外的所有成员 派生类定义自己的构造函数和析构函数。在定义派生类的构造函数时,不仅要考虑派生类新增数据成员的初始化,还要注意在成员初始化列表中对基类构造函数的调用和内嵌对象数据成员进行初始化。 * * 新类继承了基类的属性和行为 新类是基类的特殊情况。 继承 使得程序员可以利用已有的代码 继承是处理“特殊情况”的面向对象编程机制 * * * 不同的继承方式使得派生类从基类继承的成员具有不同的访问控制权限,以实现数据的安全性和共享性控制。 * * 使用派生类的 对象 只能访问基类的public成员 * 如果此处填private,那么在 class Rect中的 X=x; Y=y 会出错; 将private 改成public,那么在 class Rect中的 X=x; Y=y 不会出错;但是同样 coutr.X也不会出错 只有将此处填protected,在class Rect中的X=x; Y=y 不会出错;而只有 main中第三行汇报错 * * * 对于任意继承方式,基类的私有成员对于派生类是“不可访问的”。 对于公共继承方式,基类的公共成员为派生类的公共成员,基类的保护成员为派生类的保护成员。 对于保护继承方式,基类的公共的和保护的成员变为派生类的保护成员。 对于私有继承方式,基类的公共的和保护的成员变为派生类的私有成员。 * 答案B * * * * * * * * * * * * * * * * 私有继承和保护继承的区别 private: protected: public: 父类 private protected protected 子类 protected private: protected: public: 父类 private private private: 子类 private private private private: 孙类 private protected public 孙类成员函数无法访问 protected public private protected protected 孙类 孙类成员函数可以访问 继承方式影响访问控制 public: protected: private: public public protected private protected pro

您可能关注的文档

文档评论(0)

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

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

1亿VIP精品文档

相关文档