类的结构
时间:2010-08-03 来源:xulinyu
class test { int a; int b; int add(int a1,int a2); virtual print(); static int getobjnum(); static int num; }; 假设有上面类test,声明一个test的对象,test类对象里面包含的内容有:指向虚函数表的指针pvtable a b 所以如果 test t1;sizeof(t1)=12; 那么虚函数表,静态变量num存放在哪里呢? 其实类中的虚函数表和静态变量时作为全局变量存储的。 附加说下Windows PE文件,PE文件中保存了导入函数表和导出函数表,例如一个DLL,如果有导出函数,就会保存有导出函数表,如果一个exe程序调用了该DLL的导出函数,则在这个exe文件会有一个导入表,导入表记录的是DLL导出函数的地址。 另外如果一个DLL里面声明了一个导出类,该类有虚函数表,则虚函数表也会被导出,但是主程序exe只使用这一份虚函数表,不会自己复制一份。
相关阅读 更多 +