各位高手,能否帮我弄清下面这些问题?类对像实例的地址里存有哪些信息, 是否包含其成员函数的地址? 
如何取到类的地址?
还有如何取到类成员非虚函数地址?
还有下面这段代码 里的 (int*)(&a) 把对象指针地址转化成 INT类型的指针 是什么意思? 为什么它能取到虚函数表地址?
[code=C/C++]
   myclass a;
   cout << (int*)(&a) << endl;
[/co

解决方案 »

  1.   

    谢谢各位的回复! 还有下面这个问题,能帮我解释下吗?还有下面这段代码 里的 (int*)(&a) 把对象指针地址转化成 INT类型的指针 是什么意思? 为什么它能取到虚函数表地址? 
     
      myclass a; 
      cout < < (int*)(&a) < < endl; 
      

  2.   

    为什么 (int*)*(int*)&a 能取到虚函数表地址? 里面(int*)(&a) 把对象指针地址转化成 INT类型的指针 是什么意思?   myclass a; 
      cout < < (int*)*(int*)&a < < endl; 
      

  3.   

    就是做了转换,把地址用int类型显示而已,也是取的a的地址,而虚函数表是a的最前面的成员,所以也是虚函数表的地址
      

  4.   

    对象中的第一个数据就是虚表指针,&a是对象地址,也就是虚表指针的地址,转换为int*型就是把虚表指针作为整型指针来看。