1、隐藏:存在于派生类和基类中。只要成员名字相同就叫做隐藏。参数和函数名都相同时,是一种特殊的隐藏,叫做重写,重写只出现在函数中。若需要访问基类中被隐藏的成员,必须访问这种方法:“对象名:类名::隐藏成员名”。而“对象.成员名”访问的是派生类中的成员。之所以叫隐藏,是因为它的访问方式。
2、overload重载;override重写
3、虚函数:在声明函数时(定义函数时不用加)前面加上关键字virtual就为虚函数。
4、指针访问虚函数的特点:(1)、使用对象的指针去访问普通函数时,只看指针所属类,访问到的函数是指针所属类中的函数;(2)、使用指针对象的指针去访问虚函数时,只看指针指向对象的所属类,访问到的函数是指针指向的对象所属类的虚函数。(对象指针:访问普通函数时,只看指针类型;访问虚函数时,只看指针指向的类型)。引用和指针是一样的。这点主要用于实现回调函数。
5、回调函数:后写的代码执行会触发先写的代码调用后写的代码。后写的代码分两类:(1)、触发代码。(2)、回调函数。(典型的回调函数是创建线程)
6、能够体现多态:(1)、this指针 (2)、函数重载 (3)、指针访问虚函数虚函数等等。
7、动态关联、动态编联、动态多态性。都体现在指针访问虚函数这里。
8、虚析构函数:有虚函数就要用虚析构函数。当采用new方式创建基类对象,用基类类型变量去保存,当delete该变量时,会发现只调用了基类的析构函数,而并没有调用基类的析构函数,此时就出现了内存泄漏。这种情况,必须把基类的析构函数声明为虚析构函数。当基类的析构函数为虚析构函数时,派生类中的函数自动变为虚析构函数,不管是否用virtual关键字修饰。(建议:凡是可能称为基类的类的析构函数都声明为虚析构函数)
9、C++基础中重要知识:类对象、继承、虚函数、抽象类、组合。
10、纯虚函数:virtual 函数类型 函数名(参数表列) = 0;    这里的“=0”是格式,不是赋值,告诉编译系统这是一个纯虚函数。纯虚函数没有函数体。纯虚函数一旦定义了,就会变成虚函数。语法上没有错。
11、抽象类:    包含一个或者多个纯虚函数的类就是抽象类。(1)、抽象类不能用抽象类创建对象,但是可以被继承。(2)、抽象类可以创建指针或者引用来指向派生类对象。(3)、纯虚函数被派生类实现以后即为虚函数。(4)、抽象类的纯虚函数可以被继承,派生类中可以实现抽象类的纯虚函数。如果派生类没有把抽象类的纯虚函数实现完,则该派生类也为抽象类。(5)、在派生类中定义基类中继承下来的纯虚数前,在类中鼻血先声明为虚函数。
12、问:什么时候使用组合?什么时候使用继承?什么时候使用重写?什么时候使用虚函数?什么时候使用抽象类?
    答:(1)、部分与整体的关系,但是非本质上的,它仅仅是作为功能的扩充。
(2)、类型上的包含关系使用继承。为了解决代码的重用。
(3)、重写是对继承下来的函数体不满意。即函数体不能符合业务,则必须重写。一个基类可能有很多派生类,部分派生类对某个函数体不满意。实际开发中一定是重写虚函数,重写普通函数没有意义。
(4)、如果该函数要被基类重写,则需将该函数声明为虚函数;
(5)、所有派生类对基类的函数都不满意,但是又要使用相同的功能(即函数名和参数都相同),则需将该函数定义为纯虚函数,这样的此时的类就为抽象类。
13、protected修饰的构造函数,在派生类中,只能在参数列表中调用,不能在函数体内调用。而private修饰的构造函数,则在能被派生类中调用。
14、名称空间的使用可以使程序中定义相同名字的函数、变量、类等。

C++学习笔录3的更多相关文章

  1. ADO.NET Entity Framework学习笔录(一)

    今天开始学习了EF的相关内容,以前只知道ADO.NET,今天学习后觉得有必要写个相关的学习心得,今天就先写第一篇. 我们的再学习的过程中所用到的环境是Windows7+SQLServer2008+VS ...

  2. 性能测试LR学习笔录 -2

    LoadRunner基本测试流程: 制定性能测试计划(部分)  -> 创建测试脚本 -> 编译.运行测试脚本 -> 创建场景 - > 运行.监控场景.收集数据  -> 生 ...

  3. SVG学习笔录(一)

    SVG可缩放矢量图形(Scalable Vector Graphics)这项技术,现在越来越让大家熟知,在h5的移动端应用使用也越来越广泛了, 下面让我分享给大家svg学习的经验. HTML体系中,最 ...

  4. DDD学习笔录——提炼问题域之知识提炼与协作的基本原则

    1.通过通用语言达成共识 通用语言,已经强调过好多遍了,在DDD再怎么重视都不为过,后面可能还会讲. 知识提炼的输出以及共识的构建就是常见的通用语言(UL). 当与业务相关人员和主题专家进行建模时,每 ...

  5. DDD学习笔录——简介领域驱动设计的实践与原则

    DDD在存在许多DDD模式的同时,也有大量实践和指导原则,这些都是DDD思想体系成功的关键. 1.专注于核心领域 DDD强调的是在核心子域付出最多努力的需要.核心子域是你的产品会成功还是会失败的差异化 ...

  6. C++学习笔录4

    1.容器=数据结构+算法.相当于是为复杂的数据设计一种专门用于存放该数据的东西.用于开发中传递复杂的数据. 2.模版函数只能写在头文件中.不能单独做声明. 3.STL容器类分为三类: (1).顺序容器 ...

  7. C++学习笔录2

    1.如果一个类要成为基类,那么它的成员变量声明成受保护的变量,既用关键字protected修饰. 2.处理共同继承产生的二义性:采用虚继承方式,当出现两个相同的成员时,编译器会自动删除其中一个.其方法 ...

  8. C++学习笔录1

    1.在实际开发中,引用类型变量值用于函数的参数中.它不会另外开辟空间(提高了程序效率),他相当于变量的别名,代表的就是当前这个变量的地址空间.(引用的底层用的是指针.因此从底层的角度讲,其实它的效率是 ...

  9. cocos2d学习笔录1

    CCDirector的主要作用: 1.访问和改变场景: 2.访问cocos2d-x的配置细节 3.访问视图(OPENGL,UIVIEW,UIWINDOW): 4.暂停,恢复和结束游戏: 5.在UIKi ...

随机推荐

  1. JS正则表达式大全【转】

    正则表达式中的特殊字符 字符 含意 \ 做为转意,即通常在"\"后面的字符不按原来意义解释,如/b/匹配字符"b",当b前面加了反斜杆后/\b/,转意为匹配一个 ...

  2. Java反射及依赖注入简单模拟

    一.编写Dao类 ? 1 2 3 4 5 6 7 8 9 10 11 package cn.com.songjy.annotation;   import java.util.Date;   publ ...

  3. MySQL之终端(Terminal)管理MySQL(转)

    前言:MySQL有很多的可视化管理工具,比如“mysql-workbench”和“sequel-pro-”. 现在我写MySQL的终端命令操作的文章,是想强化一下自己对于MySQL的理解,总会比使用图 ...

  4. CSS中为什么overflow:hidden能清除浮动(float)的影响?原理是什么?

    http://www.zhihu.com/question/30938856 父块没有设置指定的高宽,当子块设置为浮动后,原本包裹子块的父块的高度塌陷消失,这时给父块设置overflow:hidden ...

  5. SQL Server AlwaysOn 故障转移

    目的: a) AlwaysOn 可用性组功能是一个提供替代数据库镜像的企业级方案的高可用性和灾难恢复解决方案. b) 当数据库服务器SQL1出现故障宕机时,可以通过AlwaysOn可用性组,自动故障转 ...

  6. Apache 日志配置,包含过滤配置

    最近排查支付宝交易成功后异步通知执行失败的原因,需要查看Apache的日志,发现之前一直没对日志进行设置,结果日志文件都1.5G多了,于是搜索了如何按天记录日志. 但公司的网站是通过阿里云的SLB分发 ...

  7. zoj1027 Human Gene Functions

    一道动态规划,两个串进行匹配,不同字母匹配的值不一样,也可以和空格匹配(空格不能与空格匹配),求最大的匹配值. 数据很弱,每个串都在100以内. 定义dp[i][j]为第一个串前i个数和第二个串前j个 ...

  8. jQuery绑定事件-多种方式实现

    jQuery绑定事件-多种方式实现: <html> <head> <meta charset="utf-8" /> <script src ...

  9. Python成长之路第一篇(4)_if,for,while条件语句

    有了以上的基本基础,已经上面写的几个小练习,大家肯定有很多的不满,比如查询为什么查询一次就退出了呢?下面我们来学习条件语句 一.万恶的加号 以前我们在print的时候如果要加上变量都有是使用+来作为连 ...

  10. digital root问题

    问题阐述会是这样的: Given a non-negative integer num, repeatedly add all its digits until the result has only ...