博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
this指针
阅读量:5280 次
发布时间:2019-06-14

本文共 822 字,大约阅读时间需要 2 分钟。

我们都知道,C++是以C语言为基础发展而成的,最早的C++编译器实际上是现将C++程序翻译成

 C语言程序再进行编译的。但C语言中并没有成员函数这一概念,只有全局函数。那么成员函数
 是如何被翻译的呢?答案是引入this指针。
   
 this指针:
        实际上非静态成员函数的形参上实际上隐藏了一个参数,即this指针。this指针指向了成
  员函数作用的对象,在成员函数执行的过程中,正是通过this指针才能找到对象所在的地
  址,从而找到所有类中非静态变量的地址。
 
     C++规定,在非静态成员函数内部可以直接使用this关键字,,this就代表指向该函数所作
  用对象的指针。
  
  由于静态成员函数并不是作用于某个对象,所以在其内部不能使用this指针。

#include 
using namespace std;class Complex{ public: double real, imag; Complex(double r, double i):real(r), imag(i){ } Complex AddOne(){ this->real++; return *this; }};int main(){ Complex c1(1, 1), c2(0, 0); c2 = c1.AddOne(); cout << c1.real << "," << c1.imag << endl; cout << c2.real << "," << c2.imag << endl; cout << &c1 << ", " << &c2 << endl; return 0;}

 

转载于:https://www.cnblogs.com/lnlin/p/7587993.html

你可能感兴趣的文章
python——基本数据类型1——简介
查看>>
jenkins pipeline
查看>>
cf 424
查看>>
回去看linux的指令
查看>>
Red5视频流服务器安装
查看>>
python3学习笔记三(数字类型,字符串)
查看>>
针对简历面试题总结
查看>>
浅谈 前端存储在页面载入时验证是否有该权利
查看>>
js基础
查看>>
向iphone模拟器中导入图片
查看>>
gdb调试技巧
查看>>
Electron Fiddle 通过代理加速下载(Mac)
查看>>
error: ‘ptrdiff_t’ does not name a type
查看>>
OPENCV学习笔记1-5_鼠标事件
查看>>
cookie的学习笔记三(做俩个小练习);
查看>>
knockout学习笔记10:demo
查看>>
C# 提供两种切割圆形图片的方式
查看>>
使用WebMatrix发布网站到Windows Azure
查看>>
【读书笔记】Cronjob原理及源码分析
查看>>
Servlet - 基础
查看>>