this指標是一個指向自己的指標,可以告訴使用者,可以告訴使用者,這個物件存在於記憶的什麼地方。
//小誌的This指標範例
#include <iostream.h> class this_ptr //開始宣告類別
{
private: //宣告屬性
long index;
public: //宣告方法
void
show_address() //輸出this指標
{ cout << "this pointer : " << this <<endl;}
};
void
main() //主程式開始
{
this_ptr object;
cout << "The address of object : " << &object << endl; //輸出物件的位址
object.show_address(); //顯示this指標指向的位址
} //主程式結束 |
利用this來指定存取自己的屬性與成員函數,顯然不是this指標的用途,this指標最主要的用途是傳遞物件本身。
//小誌的This指標範例
#include
<iostream.h>
class
this_ptr //開始宣告類別
{
private: //宣告屬性
long index;
public: //宣告方法
void show_index() //輸出index屬性
{ cout << "index : " << index
<<endl; }
this_ptr * set_index(long i_index) //設定index屬性,並傳回一個物件的參考
{
index = i_index;
return this;
//傳回物件本身
}
};void main() //主程式開始
{
this_ptr object, * object_ptr;
object_ptr = object.set_index(1); //設定index屬性,並設定object_ptr
cout << "object address : " <<
&object << endl; //輸出物件的位址
cout << "pointer : " << object_ptr
<< endl; //輸出指標指向的位址值
object.set_index(2)->show_index(); //設定index屬性,並顯示index屬性
} //主程式結束 |
|