- 博客(6)
- 收藏
- 关注
原创 深度探索C++关键字之 virtual
virtual在C++中有两个重要的用途:一是解决由多继承中父类有相同基类引起的子类中成员的二义性问题,二是实现多态。一、解决二义性1、引起二义性的原因 二义性是在多继承中出现的,如果派生类的父类继承了同一个基类,那么派生类对象访问继承自基类中成员时便会出现二义性。如下代码:#include #include class Base{public: int _b;};clas
2016-06-06 15:23:02 785
原创 栈帧
C语言中,每个栈帧对应着一个未运行完的函数。栈帧中保存了该函数的返回地址和局部变量。首先,栈是从高地址向低地址延伸的。寄存器ebp指向当前的栈帧的底部(高地址),寄存器esp指向当前的栈帧的顶部(低地址)。先来看一个代码#include void fun(){ int tmp = 10; int*p = (int*)(*(&tmp + 1)); *(p - 1) = 2
2016-06-06 15:22:47 654
原创 为什么 没有缺省构造函数的类类型成员 必需要在初始化列表 里初始化 ?
名词解释 1、缺省构造函数:类的构造函数无参或参数默认值统称为缺省构造函数。 2、初始化列表:与其它函数不同,构造函数除了有名字,参数列表和函数体外还可以有初始化列表。列表以冒号开始后跟以逗号隔开的初始化字段。类成员是在构造函数的初始化列表创建好的,在创建类成员的同时,给成员变量一个初始化值。在解释原因之前,需要了解构造函数是如何执行的构造函数的执行过程 首先,构造函数的执行分为
2016-06-06 15:22:59 1038
原创 C 指针&&表达式&&常量
一、指针 在计算机语言中,由于通过地址能找到所需的变量,可以说地址指向该变量单元,因此把地址形象的称为‘指针’,意思是能通过它来找到以它为地址的内存单元。1.1、指针&&变量 指针变量与普通变量一样,使用之前不仅要定义说明而且必须要赋具体的值,未经赋值的指针变量不能使用;可以对指针变量初始化为NULL,但是不能对值为NULL的指针变量解引用。 如下定义一个指针变量
2016-06-06 15:22:56 489
原创 C 指针&&函数
一、函数指针 顾名思义,函数指针,首先它是一个指针,因为可以指向函数,所以称为函数指针。可以与数组指针类比。 与定义数组指针类似,函数指针的定义如下: 函数返回值类型(*变量名)(函数参数类型) 如 void (*pfun)(int) //函数指针pfun指向的函数的类型是 void (int) 来判断下面的代码是什么意思(1)、char * (*fun
2016-06-06 15:22:53 305
原创 C 指针&&数组
一、指针与数组的定义首先来看一下定义与声明的具体含义定义只能出现一次确定对象的类型并分配内存,用于创建新的对象(特殊的声明)声明可以出现多次描述对象的类型,用于说明其它对象的类型 我们常说数组名是数组首元素的地址,即是一个指针。有时候我们也会把数组名当做指针来访问数组;还有给函数传一个数组时传的是数组首元素的地址,函数的形参可以定义为一个指针变量。这是不是说数组名就与指针等价呢? 不
2016-06-06 15:22:50 259
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人