教程 从入门到精通 chap 07.pptVIP

  1. 1、本文档共37页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
教程 从入门到精通 chap 07

第7章 继承、重载和多态性 继承 重载 多态性 继承 基类和派生类 继承的访问控制 派生类的构造函数和析构函数 多重派生 基类和派生类 继承就是从一个类中继承它的特性到另一个类中。 被继承的类叫做基类, 继承基类的类称为派生类。 派生类可以继承基类的特性并添加自己的独特特性。 定义派生类 class derivedclass:public bassclass { } 在后面的花括号中写出derivedclass中所有非继承的特性。 public关键字所处的位置用于写访问修饰符,允许省略不写。 访问形饰符只能是public, private或者protected之一 默认为private。 类的继承 类继承自两个以上的基类 继承的访问控制 基类各个成员的访问修饰符(private, public和protected)以及派生类以什么方式继承基类(也是private, public和protected)决定了基类的成员是否允许派生类的访问。 如果派生类以public的方式继承基类,那么,基类的所有公有数据成员都会成为派生类的公有数据成员,而基类的私有数据成员仍然保持它的私有特性,也就是说只能被基类定义的成员函数所访问,而不能被派生类的任何成员函数所访问。同样,基类的所有私有成员函数派生类也不能够访问。 如果以private的方式继承一个类,那么基类的所有数据成员都会变成派生类的私有成员,不论这个成员在基类中是私有的还是公有的。这时派生类的成员仍然可以访问它们,但是程序其他部分的代码不能够访问它们。 用公有方式继承基类的私有数据成员的方法计算一个矩形的面积 用私有方式继承基类的私有数据成员的方法计算一个矩形的面积 关于protected 被声明为protected的成员在类的内部是公有的,但是在类的外部则是私有的。 派生类中可以直接访问基类的受保护的成员,但是在类的外部则不可以直接访问它们,因为在类的外部认为它们是私有的成员。 如果派生类以public的方式继承基类,那么基类的protected成员在派生类中仍然是protected类型 如果派生类以private的方式继承基类,那么基类的protected成员在派生类中就变成private类型。 使用protected成员 派生类的构造函数和析构函数 由于在派生类中允许存在基类中没有的成员数据,因此,在C++中,使用基类的构造函数为基类的数据成员初始化,而使用派生类的构造函数为派生类中新定义的数据成员初始化。 如果基类没有显式定义一个构造函数用于对成员数据进行初始化的话,那么就用派生类的构造函数对它们进行初始化。 计算一个立方体的体积 调用基类的构造函数 派生类和基类构造函数与析构函数的执行次序 多重派生 在类的继承过程中,使用一个以上的基类派生出一个派生类。 方法是在定义好基类之后,在定义派生类时把基类用逗号隔开 多重派生 重载 函数重载 运算符重载 函数重载 函数重载是指同一个函数名可以对应多个函数的实现,每一种实现对应着一个函数,这些函数具有相同的名字,但是参数的类型不一样,或者参数的个数不相同。这就是函数重载。 在调用一个函数时如何确定使用哪个函数实现呢? 编译器会根据函数调用时参数的个数和参数的数据类型来确定使用哪个函数来实现。因此在编写重载函数的时候要求各个函数的参数个数不同,或者参数的数据类型不同,这样才能相互区分开来,否则将不能实现重载。 参数类型不同的函数重载 参数个数不同的函数重载 运算符重载 C++允许通过类来重载运算符让运算符实现新的功能。 普通的运算符只能够对普通数据类型的数据进行运算,而使用运算符重载则可以实现类之间的运算,从而将新的数据类型无缝地集成到程序设计环境中来。 使用成员运算符函数实现重载 使用运算符重载,可以为一个普通的运算符赋予一个新的含义 为了能够重载运算符,就需要在类中定义一个operator函数,称为成员运算符函数,方法是: 类名 :: operator 运算符(参数表) 使用运算符重载实现二维空间坐标的加和与赋值 操作数的顺序 在重载运算符时,必须注意操作数的顺序。 a+b和b+a的值是一样的,但是如果重载“–”运算符,那么a–b和b–a的结果就应该不同。 在dtwo类中重载++运算符 使用友元函数实现重载 由于友元函数并不是类真正的成员函数,所以不可以使用this指针来传递参数,因此要使用友元函数实现一元运算符的重载就需要让友元成员运算符函数带一个参数,而如果重载二元运算符就需要让它的友元成员运算符函数带两个参数 使用友元函数重载运算符* 多态性 指向基类的指针和指向派生类的指针 虚函数 纯虚函数和抽象类 多态性 C++实现多态性的基础是继承和指向基类的指针,而实际上多态性是通过虚函数实现的。 指向基类的指针和指向派

文档评论(0)

118zhuanqian + 关注
实名认证
文档贡献者

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

1亿VIP精品文档

相关文档