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;
}