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

    #include <iostream> 
    using namespace std; 
      
    class A 
    { 
    public: 
        int get() const{return i;} 
        void set(int x){this->i=x;cout<<"this指针保存的内存地址为:"<<this<<endl;} 
    private: 
        int i; 
    }; 
      
    int main() 
    { 
        A a; 
        a.set(9); 
        cout<<"对象a所在的内存地址为:"<<&a<<endl; 
        cout<<"对象a所保存的值为:"<<a.get()<<endl; 
        cout<<endl; 
        A b; 
        b.set(999); 
        cout<<"对象b所在的内存地址为:"<<&b<<endl; 
        cout<<"对象b所保存的值为:"<<b.get()<<endl; 
        return 0; 
    }
    

    这个程序的输出如下:

          通过这个输出结果,我们可以看到,对象a的内存地址和this指针的一模一样(都是0017F7E8);而当运行到对象b的时候,它的内存地址又和它所对应的this指针指向的内存地址一模一样了(都是0017F7DC)。这就说明了this指针变量记录的是当前对象的内存地址,即this指针指向当前的对象!

          在程序的第8行,我们就用了this指针的这个属性,即:this->i=x;这句话就表示把x的值赋值给当前的对象的私有成员函数i。

    this只能在成员函数中使用,全局函数,静态函数都不能使用this。静态函数不属于任何一个对象,是全体对象共有,this 表示当前对象,而静态函数不在对象内,因此当前对象的概念就不适用了

  • 相关阅读:
    面试技巧
    [CODEVS1116]四色问题
    [CODEVS1216]跳马问题
    [CODEVS1295]N皇后(位运算+搜索)
    [CODEVS1037]取数游戏
    [CODEVS1048]石子归并
    [NOIP2012]同余方程
    C++深入理解虚函数
    Attention Model
    faster-rcnn系列原理介绍及概念讲解
  • 原文地址:https://www.cnblogs.com/richardcpp/p/2964965.html
Copyright © 2011-2022 走看看