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

  • 相关阅读:
    在sql中日期转化
    SQL Server标准版企业版个人版区别
    Oracle 9i默认用户
    SQL Server和Oracle的常用函数对比
    Delphi6函数大全
    Oracle 不支持 TOP 关键字
    c#连接数据库
    VC6安装及打开工程文件问题的解决
    error C4430: 缺少类型说明符 假定为 int。注意: C++ 不支持默认 int
    VC++ dll导出类
  • 原文地址:https://www.cnblogs.com/-citywall123/p/12701981.html
Copyright © 2011-2022 走看看