程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> C語言 >> C++ >> C++入門知識 >> this指針

this指針

編輯:C++入門知識

this指針
        在調用類的成員函數時,隱含了一個this指針。該指針式一個指向正在對某個成員函數操作的對象的指針。
        當一個對象調用成員函數時,系統先將改對象的地址賦給this指針,然後調用成員函數。每次成員函數訪問對象成員時,則隱含地使用了this指針。
        實際中,通常不顯示使用this指針引用數據成員和成員函數,需要時還可以使用*this來標識該成員的對象。


[cpp]
#include<iostream>  
using namespace std; 
class A 

public: 
    A(int i, int j) 
    { 
        a = i; 
        b = j; 
    } 
    A() 
    { 
        a = b = 0; 
    } 
    ~A(){ cout << "Destructor!" << endl;}         // 調用析構函數  
    void Copy ( A &aa ); 
    int Returna() 
    { 
        return a; 
    } 
    int Returnb() 
    { 
        return b; 
    } 
private: 
    int a, b; 
}; 
void A::Copy(A &aa) 

 
    if ( this == &aa) 
        return ; 
    *this = aa; 

int main() 

    A a1, a2(3, 4); 
    a1.Copy(a2); 
    cout << a1.Returna() - a2.Returnb() 
        << "," << a1.Returnb() + a2.Returnb() 
        << endl; 
 
    return 0; 

#include<iostream>
using namespace std;
class A
{
public:
    A(int i, int j)
    {
        a = i;
        b = j;
    }
    A()
    {
        a = b = 0;
    }
    ~A(){ cout << "Destructor!" << endl;}         // 調用析構函數
    void Copy ( A &aa );
    int Returna()
    {
        return a;
    }
    int Returnb()
    {
        return b;
    }
private:
    int a, b;
};
void A::Copy(A &aa)
{

    if ( this == &aa)
        return ;
    *this = aa;
}
int main()
{
    A a1, a2(3, 4);
    a1.Copy(a2);
    cout << a1.Returna() - a2.Returnb()
        << "," << a1.Returnb() + a2.Returnb()
        << endl;

    return 0;
}

 

 \
 

 

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved