最近学习c++,很多概念以前学习过,最近重新进行回顾。
我们学习c++知道,成员函数最终经过编译器,最后被编译为与对象无关的全局函数,那如果成员函数中用到了成员变量,成员变量不是全局变量,那c++是怎么处理的呢?
其实c++规定,编译成员变量的时候,会在成员函数中加入一个额为的参数,这样就把当前对象的指针传递进去,通过指针来访问成员变量。这样通过传递对象指针就完成了成员函数和成员变量的关联,正好与我们看到的很多现象是反着的,因为我们平时调用成员函数都是通过先创建一个对象,然后通过对象调用成员函数。
不过对于我们很多程序员来说,这个过程是由编译器完成的,一切对我们来说是透明的。