这篇文章主要讲解虚继承的C++对象内存分布问题,从中也引出了dynamic_cast和static_cast本质区别、虚函数表的格式等一些大部分C++程序员都似是而非的概念。原文见这里(By Edsko de Vries, January 2006) 敬告:本文是介绍C++的技术文章,假定读者对于C...
分类:
其他好文 时间:
2014-08-13 18:12:16
阅读次数:
234
虚函数详解第一篇:对象内存模型浅析C++中的虚函数的内部实现机制到底是怎样的呢? 鉴于涉及到的内容有点多,我将分三篇文章来介绍。 第一篇:对象内存模型浅析,这里我将对对象的内存模型进行简单的实验和总结。 第二篇:继承对象的构造和析构浅析,这里我将对存在继承关系的对象的构造和析构进行简单的实验和...
分类:
编程语言 时间:
2014-08-12 21:35:44
阅读次数:
207
struct op( name = "ccc")coc = #( cc = op name: 20 , op name: "name" )--- 保存数组配置o = gt_max_namespace.gt_cl_hp_fileiooutin(); o. setfile "c://t.txt" ...
分类:
其他好文 时间:
2014-08-12 12:55:34
阅读次数:
146
多态在C++中是一个重要的概念,通过虚函数机制实现了在程序运行时根据调用对象来判断具体调用哪一个函数。 具体来说就是:父类类别的指针(或者引用)指向其子类的实例,然后通过父类的指针(或者引用)调用实际子类的成员函数。在每个包含有虚函数的类的对象的最前面(是指这个对象对象内存布局的最前面)都有一...
分类:
编程语言 时间:
2014-08-09 22:57:49
阅读次数:
259
我今天在想这个vector,map为什么不能写入共享内存,原来是因为new的时候只是new了这个对象在共享内存上,而真正的堆上的内存并没有在共享内存里面的,如果要想vector可以共享就要重写分配器或者用boost的,看了我们那个结构体还是很复杂的,肯定不适用,看来只有改成数组,对于string为什...
分类:
其他好文 时间:
2014-08-06 01:34:30
阅读次数:
252
dom 和 sax 解析方法的区别1,dom解析的优点是对文档crud比较方便,缺点是占用内存较多2,sax解析的优点是占用内存少,解析速度快,缺点是只适合做文档的读取,不适合做文档的crud解析方式1 dom是将整个文档加载进内存,所以内存消耗会很大,当文档的太大时,不适合用Dom dom文档加载...
分类:
其他好文 时间:
2014-08-01 13:07:11
阅读次数:
291
#对象内存布局分类讨论vc6变量查看器中(Locals,Watch1等),也可以看到部分对象布局的情况(不完整,且虚继承是错误的)。vs2005及以后版本的编译器提供了/d1reportSingleClassLayout[类名]编译选项来查看对象完整的内存布局:cl classLayout.cpp ...
分类:
编程语言 时间:
2014-07-30 14:41:43
阅读次数:
314
静态代码块:是在当类被载入(内存)时,(最先被调用的),静态代码块被执行,且之被执行一次,静态块常用来执行类属性的初始化。执行类的载入之前就会调用。非静态代码块:是在当类的对象被创建载入(内存)时,(最先被调用的),每创建一个对象,即每载入一个对象,非静态代码块都执行一次。执行类对象的载入之前就会调...
分类:
其他好文 时间:
2014-07-29 11:58:46
阅读次数:
233
1. 初始化 != 赋值.a.初始化代表为变量分配内存. 变量在其定义处被编译器初始化(编译时). 在函数中, 函数参数初始化发生在函数调用时(运行时).b.赋值代表"擦除对象当前值, 赋予新值". 它不承担为对象分配内存的义务.2. C++中, 类成员的初始化于初始化列表中完成, 先于构造函数体执...
分类:
其他好文 时间:
2014-07-29 10:54:06
阅读次数:
194
Node中为了应对文件读写,网络I/O处理,数据库访问等,需要高效操作二进制数据,Javascript中自带的字符串类型已远远不能满足要求,因此Buffer对象应运而生。Buffer对象内存分配并不在V8的堆内存而是C++外部内存申请,并在Javascript分配和使用。Buffer支持和String对象之间相互转换,但不是所有字符编码都支持,同时要注意转换过程中Buffer拼接造成的乱码问题。...
分类:
Web程序 时间:
2014-07-27 23:52:50
阅读次数:
328