读书人

一个种的成员函数到底在内存中有多

发布时间: 2012-09-20 09:36:50 作者: rapoo

一个类的成员函数,到底在内存中,有多少份?如果这个类,实例化了很多对象。
网上很多人都说只有一份。

如果只有一份,例如下面例子,我有一个地方不明白:

在内存中,a+=10,这行代码中的a,是怎么与“某个具体的A对象”关联的?


C/C++ code
Class A{   ……   int a;   void aPlusPlus()   {      a+=10;   }        ……}


[解决办法]
实际上多了一个参数
aPlusPlus(A* pthis );
[解决办法]
楼上正解,成员函数调用约定为_thiscall,this指针虽然不会同其他参数一样push进堆栈,但会存储在寄存器(比如微软的编译器一般使用ECX)
[解决办法]
对象地址被隐式地传到了函数里。

读书人网 >C++

热点推荐