一,基础知识:
C++函数调用和c一样是从右到左入栈的,例如:
exa.foo(12);
则首先被压进12,然后在此函数被调用的地方压进对象的exa的首地址被压进(放在si),因为它是被选中的对象的首地址所以也被压进来了,记住此对象的首地址对应于this的值,正因为调用每个成员函数时候this都被压栈,所以成员知道它工作在哪个对象上,这样我们总能看到,在对象的成员调用之前压栈的次数等于参数的个数加一(除了static成员函数,它没有this)
一,基础知识:
C++函数调用和c一样是从右到左入栈的,例如:
exa.foo(12);
则首先被压进12,然后在此函数被调用的地方压进对象的exa的首地址被压进(放在si),因为它是被选中的对象的首地址所以也被压进来了,记住此对象的首地址对应于this的值,正因为调用每个成员函数时候this都被压栈,所以成员知道它工作在哪个对象上,这样我们总能看到,在对象的成员调用之前压栈的次数等于参数的个数加一(除了static成员函数,它没有this)