zl程序教程

您现在的位置是:首页 >  其它

当前栏目

this指针

指针 this
2023-09-14 08:56:53 时间

首先,我们都知道类的成员函数可以访问类的数据(限定符只是限定于类外的一些操作,类内的一切对于成员函数来说都是透明的),那么成员函数如何知道哪个对象的数据成员要被操作呢,原因在于每个对象都拥有一个指针:this指针,通过this指针来访问自己的地址

 

注意:

1、this指针并不是对象的一部分,this指针所占的内存大小是不会反应在sizeof操作符上的。this指针的类型取决于使用this指针的成员函数类型以及对象类型,

 

2、this只能在成员函数中使用。全局函数,静态函数都不能使用this。

 

3、this在成员函数的开始执行前构造的,在成员的执行结束后清除。

 

4、this指针只有在成员函数中才有定义。在全局变量和静态函数中不能使用

 

#include <iostream>
#include <memory>
using namespace std;
class test1
{
public:
    test1()
    {

    };
    ~test1()
    {

    };
    int GetNum()
    {
        //this是指向当前test1这个类的指针,this指针也可以用来初始化变量
        this->a = 10;
        this->b = 0;
        return (*this).a;
    }
//私有变量可以被类内的所有成员函数调用
private:
    int a;
    int b;
};

 int main()
 {
     {
         test1 p1;
         cout << p1.GetNum() << endl;
     }
     system("pause");
     return 0;
 }

 

参考博客:https://www.cnblogs.com/zhangruilin/p/5769843.html