一.定义 虚函数: 在某基类中声明为 virtual 并在一个或多个派生类中被重新定义的成员函数,可实现函数成员的动态重载。 纯虚函数: 纯虚函数是一种特殊的虚函数,在许多情况下,在基类中不能对虚函数给出有意义的实现,而把它声明为纯虚函数,它的实现留给该基类的派生类去做。含有纯虚函数的类被称为抽象类 ...
分类:
其他好文 时间:
2017-12-21 20:48:13
阅读次数:
176
虚函数的机制 当类中定义有虚函数时,编译器会将该类中所有虚函数的首地址保存在一张地址表中,这张表被称为虚函数地址表。编译器还会在类中添加一个虚表指针。 举例: CVirtual类的构造函数中没有进行任何操作,但是我们来看构造函数内部,还是有一个赋初值的操作: 这个地址指向的是一个数组: 这些数组中的 ...
分类:
编程语言 时间:
2017-12-19 12:39:34
阅读次数:
357
如下 输出: num: 1001 name: Li score: 87.5 num: 2001 name: Wang score: 98.5 payment: 10000 ...
分类:
编程语言 时间:
2017-12-16 11:23:28
阅读次数:
204
第四章 两人合作 4.1代码规范 4.2代码风格规范 缩进 行宽 括号 断行与空白的{}行 分行 命名 下划线 大小写 注释 4.3代码设计规范 函数 goto 错误处理 参数处理 断言 如何处理C++类 1、类 2、class vs.struct 3、公共/保护/私有成员 4、数据成员 5、虚函数 ...
分类:
其他好文 时间:
2017-12-15 12:41:24
阅读次数:
130
一、类继承逆向 在C++中使用到继承,主要是为了实现多态,那么多态就必须会用到虚函数,即会产生虚表指针。 (1)父类和子类中有没用到虚函数的四种情形 1)父类和子类中都没有用到虚函数 如果父类和子类中都没有用到虚函数,那么子类中就只是继承了父类中的成员变量和成员函数,当然还得视父类中成员变量和成员函 ...
分类:
其他好文 时间:
2017-12-12 01:05:59
阅读次数:
245
12 使用sizeof计算普通变量所占空间大小 (1)不同数据类型所占字节数不同(32位 64位系统不同) int >4 double >4 char >1 (2)代码 1 #include<stdio.h> 2 #include <stdlib.h> 3 void Func(char str[10 ...
分类:
编程语言 时间:
2017-11-29 16:13:11
阅读次数:
241
真的应该早点写了.废话少说,琐碎也要写! 1.C++一门语言,用于辅助你完成工作的,不要把太多精力砸在折腾语言上.其实很多语法是用不到的, 但关于多态 继承 派生 虚函数这些, 还是要花点时间去过一遍, 可这个时间从哪里找呢? 是不是没必要每天都看SLAM, 比如每天上午/上课阶段看3个小时C++, ...
分类:
其他好文 时间:
2017-11-20 19:01:30
阅读次数:
122
本周C++面向对象高级编程编程主要是讲三个方面 1、虚表和虚指针 虚指针:如果类(包括父类)中有虚函数,就一定会有虚指针,虚指针是指向虚函数的虚表。 虚表:虚指针指向的一种类的表,表上存有类里面虚函数的实现的指针 这里虚函数和虚表一般是和类的多太性结合在一起来使用的,子类调用虚函数是通过调用虚指针来 ...
分类:
编程语言 时间:
2017-11-20 01:09:34
阅读次数:
203
输出是1。说明调用的是父类的函数。 输出是2。说明调用的是子类的函数。 所以当父类的函数是虚函数,调用的会是子类函数。 ...
分类:
其他好文 时间:
2017-11-17 10:51:59
阅读次数:
119
联合Union 1.一个联合变量的地址和一个联合变量任意一个成员地址相同。 2.同类型的联合变量不能比较大小。 3.可以定义构造函数和析构函数,但不能有虚函数和静态成员函数,不能作为基类或派生类。 枚举enum 1.枚举可以定义相同的值。 2.当整数強转为枚举且超过枚举值时,此时值为未知。 3.匿名 ...
分类:
编程语言 时间:
2017-11-16 00:54:05
阅读次数:
245