《CPrimer》4第四部分学习笔记汇总面向对象编程与泛型编程(15至16章).docxVIP

《CPrimer》4第四部分学习笔记汇总面向对象编程与泛型编程(15至16章).docx

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

《C++ Primer》第四部分学习笔记汇总——面向对象编程与泛型编程——继承,动态绑定,数据抽象,函数模板《C++ Primer》第15章学习笔记第15章:面向对象编程——面向对象编程基于三个基本概念:数据抽象,继承,动态绑定。——用类进行数据抽象——用类派生从一个类继承另一个类:派生类继承基类成员;——动态绑定使编译器能够在运行时决定是使用基类中定义的函数还是派生类中定义的函数。@学习摘录162:继承与动态绑定的作用:——能够容易地定义与其他类相似但又不相同的新类,能够更容易地编写忽略这些相似类型之间区别的程序。@学习摘录163:多态性——面向对象编程的关键思想是多态性(polymorphism)——继承而相关联的类型为多态类型。@学习摘录164:继承——派生类(derived class)能够继承基类(base class)定义的成员——派生类可以无须改变而使用那些与派生类型具体特性不相关的操作——派生类可以重定义那些与派生类型相关的成员函数,将函数特化,考虑派生类型的特性。——在C++中,基类必须指出希望派生类重定义哪些函数,定义为virtual的函数是基类期待派生类重新定义的,基类希望派生类继承的函数不能定义为虚函数。@学习摘录165:动态绑定(dynamic binding)——我们能够编写程序使用继承层次中任意类型的对象,无须关心对象的具体类型。@学习摘录166:protected成员——可以认为protected访问标号是private和public的混合:——1. 像private成员一样,protected成员不能被类的用户访问。——2. 像public成员一样,protected成员可被该类的派生类访问。——派生类只能通过派生类对象访问其基类的protected成员,派生类对其基类类型对象的protected成员没有特殊访问权限。@学习摘录167:派生类类型接口——简单地说:提供给派生类型接口是protected 成员和public成员的集合。@学习摘录168:派生类——为了定义派生类,使用类派生列表(class derivation list)指定基类。——class classname: access-label base-class——这里的access-label 是public、protected或private, base-class 是已定义的类的名字。@学习摘录169:派生类和虚函数——一旦函数在基类中声明为虚函数,它就一直为虚函数,派生类无法改变该函数为虚函数这一事实。——派生类重定义虚函数时,可以使用virtual保留字,但不是必须这样做。@学习摘录170:virtual与其他成员函数——C++函数默认不使用动态绑定。——要触发动态绑定,必须满足两个条件:——第一,要将成员函数指定为虚函数。(默认的成员函数都是非虚函数)——第二,要通过基类类型的引用或指针进行函数调用。@学习摘录171:静态类型与动态类型的概念——静态类型(static type)在编译时可知的引用类型或指针类型。——动态类型(dynamic type)指针或引用所绑定的对象的类型,这是仅在运行时可知的。@学习摘录172:C++中的多态性——引用和指针的静态类型与动态类型可以不同,这是C++用以支持多态性的基石。@学习摘录173:派生类函数调用基类版本——只有成员函数中的代码才应该使用作用域操作符覆盖虚函数机制。——覆盖虚函数机制,最常见的理由是为了派生类虚函数调用基类中的版本。——派生类虚函数调用基类版本时,必须显式使用作用域操作符。如果派生类函数忽略了这样做,则函数调用会在运行时确定并且将是一个自身调用,从而导致无穷递归。@学习摘录174:继承与组合——定义一作为另一个类的公用派生类时,派生类应反映与基类的“是一种(Is A)”关系。——在书店的例子中,基类表示按规定价格销售的书的概念,Bulk_item是一种书,但具有不同的定价策略。——类型之间另一种常见的关系是称为“有一个(Has A)”的关系。——书店的例子的类具有价格和ISBN.@学习摘录175:友元关系与继承——基类或派生类可以使其他类或函数成为友元。——友元可以访问类的private和protected数据。——友元关系不能继承。@学习摘录176:转换与继承——每个派生类对象包含一个基类部分。——可以将派生类对象的引用转换为基类子对象的引用,对指针也类似。——没有从基类引用(或基类指针)到派生类引用(或派生类指针)的(自动)转换。——没有从派生类型对象到基类类型对象的直接转换。第四节:构造函数和复制控制——构造函数和复制控制成员不能继承,每个类定义自己的构造函数和复制控制成员。@学习摘录177:合成的派生类默认构造函数——派生类的合成默认构造函数与非派

文档评论(0)

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

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

1亿VIP精品文档

相关文档