http://blog.csdn.net/haoel/article/details/3081328我们简单地复习一下,我们可以通过对象的地址来取得虚函数表的地址,如:typedefvoid(*Fun)(void);Base b;Fun pFun = NULL;cout "<< endl;for(i...
分类:
编程语言 时间:
2014-10-03 00:27:13
阅读次数:
370
__declspec (novtable )关键字,表示这个类不生成虚函数表,但是继承类不影响(不管基类是否使用了关键字)。
class Base1
{
virtual void f(){}
virtual void g(){}
};
class __declspec(novtable ) Base2
{
virtual void...
分类:
其他好文 时间:
2014-10-01 23:48:31
阅读次数:
426
近日学习ATL,通过对宏定义offsetofclass的解惑过程,顺便分析下虚函数表,以及通过虚函数表调用函数的问题。
1 解开ATL中宏定义offsetofclass的疑惑
#define _ATL_PACKING 8
#define offsetofclass(base, derived) ((unsigned long)(static_cast ((derived...
分类:
其他好文 时间:
2014-10-01 20:06:21
阅读次数:
189
其实就是将函数直接做为表达调用,使用括号包裹定义函数体,解析器将会以函数表达式的方式去调用定义函数。常见格式:(function() { /* code */ })();解释:包围函数(function(){})的第一对括号向脚本返回未命名的函数,随后一对空括号立即执行返回的未命名函数,括号内为匿名...
分类:
Web程序 时间:
2014-09-30 14:11:29
阅读次数:
210
首先声明,本文的大部分内容来自大牛文章http://blog.csdn.net/haoel/article/details/1948051然后加上自己的一些理解和实验。系统和编译器: ubuntu 14.04 64bits + g++4.8.2虚函数表对C++了解的人都应该知道虚函数(Virtual...
分类:
编程语言 时间:
2014-09-29 18:54:22
阅读次数:
293
JavaScript是一种脚本语言, 它的执行过程, 是一种翻译执行的过程。并且JavaScript是有预编译过程的,在执行每一段脚本代码之前, 都会首先处理var关键字和function定义式(函数定义式和函数表达式)。一、变量执行之前,会被赋为undefined function ech...
分类:
编程语言 时间:
2014-09-29 11:29:37
阅读次数:
195
函数表达式定义函数的方法:函数声明:function functionName(arg0, arg1, arg2){ //函数体}Firefox、Safari、Chrome和Opera给函数定义了name属性,其值等于function关键字后面的标识符。函数提升:执行代码前先读取函数声明。使用函数....
分类:
编程语言 时间:
2014-09-27 18:06:50
阅读次数:
367
描述:override保留字表示当前函数重写了基类的虚函数。目的:1.在函数比较多的情况下可以提示读者某个函数重写了基类虚函数(表示这个虚函数是从基类继承,不是派生类自己定义的);2.强制编译器检查某个函数是否重写基类虚函数,如果没有则报错。用法:在类的成员函数参数列表后面添加该关键字既可。例子:c...
分类:
编程语言 时间:
2014-09-27 08:00:39
阅读次数:
221
定义函数的两种方式函数声明function functionName(arg0,arg1,arg2){ //函数体}//非标准的name属性//只在Firefox、Safari、Chrome和Opera有效alert(functionName.name);//'functionName'特点:函数....
分类:
其他好文 时间:
2014-09-25 20:55:07
阅读次数:
249