zoukankan      html  css  js  c++  java
  • this指针

    首先,我们都知道类的成员函数可以访问类的数据(限定符只是限定于类外的一些操作,类内的一切对于成员函数来说都是透明的),那么成员函数如何知道哪个对象的数据成员要被操作呢,原因在于每个对象都拥有一个指针: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

  • 相关阅读:
    SRM 588 D2 L3:GameInDarknessDiv2,DFS
    [置顶] ProDinner体验
    [置顶] 强制访问控制内核模块Smack
    Java小项目--坦克大战(version1.0)
    utf-8-validation
    is-subsequence
    perfect-rectangle
    find-the-difference
    longest-absolute-file-path
    first-unique-character-in-a-string
  • 原文地址:https://www.cnblogs.com/-citywall123/p/12701981.html
Copyright © 2011-2022 走看看