07 2015 档案
摘要:c++在很多地方都采用了对其分配内存的方式,比如一个类对象数据成员的存放就按照对齐方式存放。对齐有利于存取效率的提高:比如有些平台每次读取数据都是从偶数地址开始,若一个int型存放在偶数地址开始处,则一次读周期就可以读出这个整数,而如果存放在奇数地址处,则需要两个读周期。标准库提供的malloc...
阅读全文
摘要:1.指针和引用最主要的区别应该在于引用是一个变量的别名,不分配内存区域。而指针有内存空间,存储指向对象的地址。要理解这一点可以从编译过程来看:编译成目标文件过程中,把指针和引用添加到符号表中,其中记录变量和变量所对应的地址。指针变量在符号表上对应的地址为指针变量的地址,而引用在符号表上对应的地址为引...
阅读全文
摘要:SQL代码并不是按照编码顺序进行处理,而是按照如下顺序进行:(8)SELECT (9)DISTINCT(1)FROM (3)JOIN(2)ON(4)WHERE(5)GROUP BY(6)WITH{CUBE|ROLLUP}(7)HAVING(10)ORDER BY(11)LIMIT每个操作都...
阅读全文
摘要:1.首先要说明的是一个inline函数具有静态链接(static linkage),不会被文件以外者看到。 2.编译是分模块进行的(不同的编译模块指不同的文件),使用#include把类的头文件包含进来,在预处理阶段会进行文本替换。如果此时在.h文件中定义了类的函数,那么包含了inlcude的...
阅读全文
摘要:先看一个例子:Widget类中有个虚函数和一个非虚函数。指针变量pWidget的值是NULL。通过指针调用非虚函数和虚函数。class Widget{public: virtual void virtual_flip(){ cout nonvirtual_flip(); pWidget->vi...
阅读全文
摘要:对于这个问题,我首先想到的是将“父类”的构造函数声明为私有的,这样的话,子类就不能在自己的构造函数中调用父类的构造函数(就算没有显示调用父类的构造函数,编译器也会自动在子类的构造函数中插入调用父类构造函数的代码),于是就实现了不能被继承的类。同时,我们还是要能够产生这个类的对象,所有要公开一个方...
阅读全文
摘要:花了两天时间略读了一下《stl源码分析》,看了个大体,对于细节并没有深究。之所以想翻翻这本书,主要是想看看stl中的特性、适配器的具体实现。看完之后收获还是蛮大的,模板的各种组合让我眼前一亮,下面大概总结一些内容。 1.内存分配:sgi内存分配采用两级实现,对于大内存块的申请(大于128k)由...
阅读全文

浙公网安备 33010602011771号