美文网首页C++复习
C++中的this指针

C++中的this指针

作者: 凉拌姨妈好吃 | 来源:发表于2018-05-11 01:13 被阅读5次

参考博客

简单说明一下this指针到底是什么

class是用户自定义的类型,我们都知道int *p是指向int类型的指针,而 this就是指向class的指针。对this指针进行解引用就得到自定义类型的变量。

this指针的作用域

它的作用域在类内部,当类的非静态成员函数调用非静态成员时,编译器会自动将类的地址作为一个隐含参数传递给函数。

class MyClass
{
    void test(MyClass *this,int arg1, float arg2) {}
    //第一个参数就是隐含参数
};
this的值是否可以改变?

不行,this存在的目的就是为了一直指向某个对象,所以this是常量指针,不能修改它的指向

class Point
{ 
  int x, y;
public:
  Point(int a, int b) { x=a; y=b;}
  Void MovePoint( int a, int b){ x+=a; y+=b;}
};
void main( )
{
   Point point1( 10,10);
   point1.MovePoint(2,2);
  //point1调用该成员函数时,将point1的地址作为隐含参数传递给了成员函数
  //相当于void MovePoint(int a, int b) { this->x +=a; this-> y+= b;}
  //即 point1.x+= a; point1. y + = b;
}
this指针是在何时创建的?

在成员函数执行之前构造,执行结束之后清除

为什么this指针不用于静态成员函数?

静态成员函数的作用域是全局的,并不是属于某个对象的,而是整个类共有的。this指针针对于某个对象,而不是某个类。

相关文章

  • [C++之旅] 16 对象指针/对象成员指针/this指针

    [C++之旅] 16 对象指针/对象成员指针/this指针 一、对象指针 对象指针指向堆中地址 对象指针指向栈中地...

  • C++基础

    C++ 值传递、指针传递、引用传递详解C++中引用传递与指针传递区别 引用传递和指针传递的区别 引用的规则:(1)...

  • 指针和引用的区别

    参照lyd_253261362的专栏的文章详细介绍=====c++中的引用与指针的区别 c++中的引用与指针的区别...

  • java中的引用与c++中的指针的区别

    java中的引用与c++中的指针的区别 Java的引用和C++的指针都是指向一块内存地址的,通过引用或指针来完成对...

  • 学习笔记3(指针运算,函数参数与指针,数组指针,二级指针)

    一、指针运算 二、数组与指针 三、指针和函数参数 java中: C/C++中: 四、指针数组 五、 二级指针 六、...

  • C++知识点

    C++基本方法: C++ memcpy C++基本特性: C++引用(vs指针) C++指针 C++封装: 将...

  • JNI总结

    java调用c/c++ 在C中:JNIEnv 结构体指针别名env二级指针 在C++中:JNIEnv 是一个结构体...

  • java

    1.java白皮书的关键术语 简单的参照c++,是c++语法的纯净版本但没有c++中的头文件,指针运算(甚至指针语...

  • 1.2.08_C++ this 指针

    C++ 类 & 对象 在 C++ 中,每一个对象都能通过 this 指针来访问自己的地址。this 指针是所有成员...

  • 指针和引用的辨析

    先来看两个图 指针与引用的区别 1.指针在C和C++中均有,而引用是C++独有的特性(*指针申明符号,&引用申明符...

网友评论

    本文标题:C++中的this指针

    本文链接:https://www.haomeiwen.com/subject/tsjxdftx.html