2022年《C++Primer》4第四部分学习笔记汇总_面向对象编程与泛型编程 .pdf
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_05.gif)
《2022年《C++Primer》4第四部分学习笔记汇总_面向对象编程与泛型编程 .pdf》由会员分享,可在线阅读,更多相关《2022年《C++Primer》4第四部分学习笔记汇总_面向对象编程与泛型编程 .pdf(7页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、C+ Primer第四部分学习笔记汇总面向对象编程与泛型编程继承,动态绑定,数据抽象,函数模板C+ Primer 第 15 章学习笔记第 15 章:面向对象编程面向对象编程基于三个基本概念:数据抽象,继承,动态绑定。用类进行数据抽象用类派生从一个类继承另一个类:派生类继承基类成员;动态绑定使编译器能够在运行时决定是使用基类中定义的函数还是派生类中定义的函数。学习摘录162:继承与动态绑定的作用:能够容易地定义与其他类相似但又不相同的新类,能够更容易地编写忽略这些相似类型之间区别的程序。学习摘录163:多态性面向对象编程的关键思想是多态性(polymorphism )继承而相关联的类型为多态类型
2、。学习摘录164:继承派生类( derived class)能够继承基类(base class)定义的成员派生类可以无须改变而使用那些与派生类型具体特性不相关的操作派生类可以重定义那些与派生类型相关的成员函数,将函数特化,考虑派生类型的特性。在 C+中,基类必须指出希望派生类重定义哪些函数,定义为 virtual 的函数是基类期待派生类重新定义的,基类希望派生类继承的函数不能定义为虚函数。学习摘录165:动态绑定( dynamic binding )我们能够编写程序使用继承层次中任意类型的对象,无须关心对象的具体类型。学习摘录166:protected 成员可以认为protected 访问标号
3、是private 和 public 的混合: 1. 像 private 成员一样, protected 成员不能被类的用户访问。 2. 像 public 成员一样, protected 成员可被该类的派生类访问。派生类只能通过派生类对象访问其基类的protected 成员,派生类对其基类类型对象的protected 成员没有特殊访问权限。学习摘录167:派生类类型接口简单地说:提供给派生类型接口是protected 成员和 public 成员的集合。学习摘录168:派生类为了定义派生类,使用类派生列表(class derivation list )指定基类。 class classname:
4、access -label base-class这里的access-label 是 public、protected 或 private, base-class 是已定义的类的名字。学习摘录169:派生类和虚函数精品资料 - - - 欢迎下载 - - - - - - - - - - - 欢迎下载 名师归纳 - - - - - - - - - -第 1 页,共 7 页 - - - - - - - - - - 一旦函数在基类中声明为虚函数,它就一直为虚函数,派生类无法改变该函数为虚函数这一事实。派生类重定义虚函数时,可以使用virtual 保留字,但不是必须这样做。学习摘录170:virtual
5、与其他成员函数 C+ 函数默认不使用动态绑定。要触发动态绑定,必须满足两个条件:第一,要将成员函数指定为虚函数。(默认的成员函数都是非虚函数)第二,要通过基类类型的引用或指针进行函数调用。学习摘录171:静态类型与动态类型的概念静态类型(static type )在编译时可知的引用类型或指针类型。动态类型(dynamic type )指针或引用所绑定的对象的类型,这是仅在运行时可知的。学习摘录172:C+中的多态性引用和指针的静态类型与动态类型可以不同,这是C+用以支持多态性的基石。学习摘录173:派生类函数调用基类版本只有成员函数中的代码才应该使用作用域操作符覆盖虚函数机制。覆盖虚函数机制,
6、最常见的理由是为了派生类虚函数调用基类中的版本。派生类虚函数调用基类版本时,必须显式使用作用域操作符。如果派生类函数忽略了这样做,则函数调用会在运行时确定并且将是一个自身调用,从而导致无穷递归。学习摘录174:继承与组合定义一作为另一个类的公用派生类时,派生类应反映与基类的“是一种(Is A) ”关系。在书店的例子中,基类表示按规定价格销售的书的概念,Bulk_item 是一种书, 但具有不同的定价策略。类型之间另一种常见的关系是称为“有一个(Has A)”的关系。书店的例子的类具有价格和ISBN.学习摘录175:友元关系与继承基类或派生类可以使其他类或函数成为友元。友元可以访问类的priva
7、te 和 protected 数据。友元关系不能继承。学习摘录176:转换与继承每个派生类对象包含一个基类部分。可以将派生类对象的引用转换为基类子对象的引用,对指针也类似。没有从基类引用(或基类指针)到派生类引用(或派生类指针)的(自动)转换。没有从派生类型对象到基类类型对象的直接转换。第四节:构造函数和复制控制构造函数和复制控制成员不能继承,每个类定义自己的构造函数和复制控制成员。学习摘录177:合成的派生类默认构造函数派生类的合成默认构造函数与非派生的构造函数只有一点不同:精品资料 - - - 欢迎下载 - - - - - - - - - - - 欢迎下载 名师归纳 - - - - - -
8、 - - - -第 2 页,共 7 页 - - - - - - - - - - 除了初始化派生类的数据成员外,还要初始化派生类对象的基类部分。基类部分由基类的默认构函数初始化。学习摘录178:派生类的构造次序构造函数初始化列表为类的基类和成员提供初始值,它并不指定初始化的执行次序。首先初始化基类,然后根据声明次序初始化派生类的成员。学习摘录179:只能初始化直接基类一个类只能初始化自己的直接基类。(直接基类就是在派生列表中指定的类。)如果类从类派生,类从类派生,那是的直接基类。学习摘录180:重构( refactioring )重构包括重新定义类层次,将操作和/或数据从一个类移到另一个类。为了
9、适应应用程序的需要而重新设计类以便增加新函数或处理其他改变时,最有可能需要进行重构。然而,对类进行重构,或以任意其他方式改变类,使用这些类的任意代码都必须重新编译。学习摘录181:尊重基类接口构造函数只能初始化其直接基类的原因是每个类都定义了自己的接口。一旦定义了自己的接口,与该类对象的所有交互都应该通过接口。学习摘录182:定义派生类复制构造函数如果派生类显式定义自己的复制构造函数或赋值操作符,则该定义将完全覆盖默认定义。被继承类的复制构造函数和赋值操作符负责对基类成分以及类自己的成员进行复制或赋值。学习摘录183:派生类析构函数析构函数的工作与复制构函数和赋值操作符不同:派生类析构函数不负
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- C+Primer 2022年C+Primer4第四部分学习笔记汇总_面向对象编程与泛型编程 2022 Primer 第四 部分 学习 笔记 汇总 面向 对象 编程
![提示](https://www.taowenge.com/images/bang_tan.gif)
限制150内