原文:C/C++杂记:深入理解数据成员指针、函数成员指针 1. 数据成员指针 对于普通指针变量来说,其值是它所指向的地址,0表示空指针。而对于数据成员指针变量来说,其值是数据成员所在地址相对于对象起始地址的偏移值,空指针用-1表示。例: 代码示例: 2. 函数成员指针 函数成员指针与普通函数指针相比 ...
分类:
编程语言 时间:
2016-06-13 22:11:13
阅读次数:
268
1. 数据成员指针 对于普通指针变量来说,其值是它所指向的地址,0表示空指针。 而对于数据成员指针变量来说,其值是数据成员所在地址相对于对象起始地址的偏移值,空指针用-1表示。例: 代码示例: struct X { int a; int b; }; #define VALUE_OF_PTR(p) ( ...
分类:
编程语言 时间:
2016-06-09 12:06:40
阅读次数:
221
指针 用来保存某种类型的变量的地址的变量,取地址& ->知道变量取地址,某个地址的变量: *地址 成员指针,(*地址).成员,地址->成员 向函数传递参数的时候,如果希望函数能操作某个变量里的数据,就把变量的地址传递给函数,函数里就可以根据地址找到内存中的那个变量,从而取得或者改变变量里的值。 地址 ...
分类:
编程语言 时间:
2016-04-29 01:38:46
阅读次数:
254
《C++运算符优先结合助记词》 (新手上路一原创,共20 +1句) 作用类名全; 点箭标调构; 后增减运明转; 前增减非位反,正负解尺址换,新删数组无异常; 成员指针解引用; 乘除模; 加和减; 左移右移; 小于大于; 等于不等; 位与; 位异; 位或; 逻与; 逻或; 条件; 赋值; 复赋值; 抛 ...
分类:
编程语言 时间:
2016-04-16 15:14:05
阅读次数:
125
1. 常见内存错误 (1)结构体成员指针未初始化 (2)结构体成员指针未分配足够的内存 (3)内存分配成功,但并未初始化 (4)内存操作越界 【实例分析】常见的内存错误1 2. 内存操作的交通规则 (1)动态内存申请之后,应该立即检查指针的值是否为NULL,防止使用NULL指针 (2)free指针之 ...
分类:
其他好文 时间:
2016-04-05 00:30:27
阅读次数:
231
1. 在C++中,不能被重载的运算符有: sizeof . 成员运算符 .* 成员指针运算符 :: 作用域运算符 ?: 条件运算符 2. C++语言多态性:编译时多态和运行时多态: 编译时多态可通过函数重载和模板实现; 运行时多态可通过虚函数实现; 实现运行时多态机制称为动态绑定; 3. C++中,
分类:
编程语言 时间:
2016-02-24 20:57:05
阅读次数:
242
成员变量指针 静态成员变量、静态成员函数与对象无关,静态成员指针与普通指针一致 本质就是特定成员变量在对象实例中的相对地址,解引用时再根据调用对象的地址计算该成员变量的绝对地址 定义 类型 类名 ::* 成员变量指针 = &类名 ::成员变量 使用 对象.*成员变量指针\对象指针->*成员变量指针
分类:
其他好文 时间:
2016-01-27 21:16:26
阅读次数:
124
指针、引用必须注意浅深拷贝浅拷贝:只复制地址,没复制值缺省方式的拷贝构造和拷贝赋值,对包括指针在内的基本成员变量按字节赋值,导致浅拷贝问题。为了获得完整意义上的对象副本,必须自己定义拷贝构造和拷贝赋值,针对指针型成员变量做深拷贝。赋值表达式的值是操作符左值的引用。运算符重载的返回值都是自引用形式(r...
分类:
其他好文 时间:
2016-01-23 21:29:13
阅读次数:
179
在C++中,成员函数的指针是个比较特殊的东西。对普通的函数指针来说,可以视为一个地址,在需要的时候可以任意转换并直接调用。但对成员函数来说,常规类型转换是通不过编译的,调用的时候也必须采用特殊的语法。C++专门为成员指针准备了三个运算符: "::*"用于指针的声明,而"->*"和".*"用来调用指针...
分类:
其他好文 时间:
2015-12-16 09:27:08
阅读次数:
203
一.std::function C++中的可调用对象虽然具有比较统一操作形式(除了类成员指针之外,都是后面加括号进行调用),但定义方法五花八门。为了统一泛化函数对象,函数指针,引用函数,成员函数的指针的各种操作,让我们可以按更统一的方式写出更加泛化的代码,C++11推出了std::functio.....
分类:
其他好文 时间:
2015-12-08 00:34:22
阅读次数:
311