__declspec(novtable) 的作用是:类不要有虚函数表以及对虚函数表的初始化代码, 这样可以节省运行时间和空间。缺点是该类型对象不能调用虚函数了,一般用于接口。 如下代码: class Base1 { public: virtual void f() {}; virtual void ...
分类:
其他好文 时间:
2020-01-11 18:41:05
阅读次数:
93
下载了一份很久以前泄漏的IE5.0的源代码,虽然已经是很古远的版本了。但是通过调试现有版本浏览器与查看源代码,发现关键部分的差距并不是很大,代码很有参考意义。这里把重要的函数、数据结构摘抄出来以备参考。 1 class NOVTABLE CTreeNode : public CVoid 2 { 3 ...
分类:
其他好文 时间:
2016-08-25 23:24:24
阅读次数:
172
1,#ifdef _ATL_DISABLE_NO_VTABLE#define ATL_NO_VTABLE#else#define ATL_NO_VTABLE __declspec(novtable)#endifThis form of __declspec can be applied to any ...
分类:
其他好文 时间:
2016-05-22 19:48:12
阅读次数:
151
__declspec(novtable)keyword,表示这个类不生成虚函数表。可是继承类不影响(无论基类是否使用了keyword)。不使用此keyword。类在生成对象时构造函数和析构函数多要对这个虚函数表进行处理。使用此keyword就相对省空间,少处理一些代码。classBase1{ vi....
分类:
其他好文 时间:
2015-07-10 10:46:35
阅读次数:
138
“__declspec”是Microsoft c++中专用的关键字,它配合着一些属性可以对标准C++进行扩充。这些属性有:align、allocate、deprecated、 dllexport、dllimport、 naked、noinline、noreturn、nothrow、novtable、...
分类:
编程语言 时间:
2014-10-10 23:46:45
阅读次数:
347
__declspec (novtable )关键字,表示这个类不生成虚函数表,但是继承类不影响(不管基类是否使用了关键字)。
class Base1
{
virtual void f(){}
virtual void g(){}
};
class __declspec(novtable ) Base2
{
virtual void...
分类:
其他好文 时间:
2014-10-01 23:48:31
阅读次数:
426
在应用inheritance时,除去基类里无用的constructor,对大量构造的object的性能来说,会有明显的影响。不幸的是,微软的__declspec(novtable) class modifier对解决这个问题没有提供任何帮助。在设计海量存储的object的应用中,我们应该尽量用POD...
分类:
编程语言 时间:
2014-09-04 02:49:39
阅读次数:
175
offsetof是求类的成员变量的偏移量,如果成员变量是类定义的第一个变量,那他的偏移量应该是0.但是引入继承之后,就要额外考虑了。下面的代码说明了这个问题:#define AFX_NOVTABLE//#define AFX_NOVTABLE __declspec(novtable)class AF...
分类:
其他好文 时间:
2014-08-14 19:40:09
阅读次数:
290