C.4.3 类方法
通常所说的类方法就是简单的函数。因此,一个非虚拟成员函数的调用实际上就是一个把this指针作为第一个参数的直接函数调用。一些编译器,比如Intel公司或者Microsoft公司的编译器通常使用ECX寄存器传递this指针,其他的编译如G++(GCC的C++编译器版本)是通过把this指针压入堆栈中第一个参数的位置来传递的。
|
| 图C.5 继承对象在内存中的布局 |
要确定类方法调用是不是一个普通的、非虚拟的调用,你可以检查函数的地址,如果函数的地址嵌入在代码中说明是非虚拟调用,而如果是通过一个函数表获得的说明不是非虚拟的调用。