c++ this指针

2020-09-14  本文已影响0人  FakeCSer爱去网吧

this指针

this指针是啥

  • this指针并不是对象本身的一部分,不会影响sizeof的结果
  • this指针其实就是对象本身的地址。

this指针与虚指针

this指针与成员函数

实际上,编译器将成员函数转换为非成员函数,经过下面三步

  • 给函数添加额外参数——this;
  • 将对每一个nonstaitc data member的存取操作改为this指针来存取;
  • 将member function 重写成一个外部函数。对函数名采用mangling 处理,使之成为独一无二的语汇;

可见,成员函数实现最重要的一步是引入了this指针
当调用成员函数时,会将当前对象的this指针当做传入成员函数,(加一个隐性参数this),成员函数通过这个this指针来对对象的data member进行存取。

注:静态成员函数无法使用this指针,应为静态成员函数是"class specific"的,类独有一份,并不会(也不需要)将对象的地址传给它

上一篇下一篇

猜你喜欢

热点阅读