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. properties文件value换行处理方式

    书写方式如下,就可以允许key1的value值换行了,但是整个过程要注意不要在文件中出现任何的非英文非半角的字符 key1=Where did you take the picture?\       ...

  2. 查看Android系统当前运行的activity

    在Appium进行自动化测试的时候,往往需要知道你要测试的应用的包名和activity的名字,这样才可以进行自动化测试. 在我之前的博客中也提到了获取activity的名字,但是并不是很方便,甚至浪费 ...

  3. VMware下桥接设置

    操作环境 主机:Win7 X86 SP1 虚拟机:VMware station 8 虚拟机里的系统:Fedora 15 环境上,不管什么系统,什么版本的虚拟机,使用上都是大同小异的,毕竟核心是不变的. ...

  4. java项目使用memcache实现session共享+session基础

    本文章主要目的是配置session共享,为了巩固基础,捎带介绍了一些基础知识(网上搜索后觉得最全面的特引过来,节省时间),基础扎实的可以自动忽略. 基础篇: 1.了解java web中的session ...

  5. NSString 遍历

    遍历NSString网上大多数有两种方法 最简单有效的是: NSString *name=[[NSString alloc] initWithFormat:@"小猫咪爱上大老鼠!!" ...

  6. 蜗牛爱课- iOS中定时器NSTimer使用

    调用一次计时器方法: //不重复,只调用一次.timer运行一次就会自动停止运行 self.locationTimer = [NSTimer  target:self selector: @selec ...

  7. 图的最短路径问题————树上奶牛(tree.cpp)

    和往常一样,继续从题目引入 树上奶牛 (tree.cpp) [题目描述] 农夫John的奶牛不是住在地上而是住在树上的QWQ. 奶牛之间需要串门,不过在串门之前他们会向John询问距离的大小.可是Jo ...

  8. Linux系统学习笔记:文件描述符标志

    文件描述符标志的概念 文件描述符标志(目前就只有一个close-on-exec): 它仅仅是一个标志,当进程fork一个子进程的时候,在子进程中调用了exec函数时就用到了这个标志.意义是执行exec ...

  9. 自定义TabHost,TabWidget样式

    先看效果: 京东商城底部菜单栏 新浪微博底部菜单栏 本次学习效果图:

  10. php获取当前日期-7天

    // 将目前的时间戳值放入一数组内$strdate = '2014-02-03';$desDate = strtotime($strdate);//var_dump($desDate); $times ...