Chapter 5.3 類別與指標 - TKU-ME-Lab/C-C-_tutorial GitHub Wiki

this指標

this指標是類別內建指標,它將自動被傳遞給類別中所有非靜態得函數.所以“this->資料成員”與”(*this).資料成員”則指向類別本身的資料成員位址

this ->資料成員   //指向資料成員位址
(*this).   //指向資料成員位址


Example1:

class Employee
{
     int EmpId;   
     char name[20];   
public:
     Employee()   
     {
         EmpId = 0;   
         strcpy_s(name, "zzz");   
     }
     void outputEmp()
     {
          cout << this->EmpId << endl;   //取得Employee指標的EmpId
          cout << (*this).name << endl;   //取得Employee指標的name
     }
};   //outputEmp函數中的 this->EmpId相當於Employee->EmpId
但因為此敘述在類別內部,所以不能使用Employee->EmpId,而必須以this->EmpId或(*this). 
EmpId取得指標位址的EmpId的成員資料.同理,必須以this->name或(*this).
name來取得指標位址的name成員的資料


Example2:

#include<iostream>
using namespace std;

class Employee   //宣告類別
{
     int EmpId;
     char name[20];
public:
     Employee()
     {
         EmpId = 0;
         strcpy_s(name, "zzz");   
     }
     void setEmp(int id,const char *n)
     {
         EmpId = id;
         strcpy_s(name,n);
     }
     void outputEmp()
     {
          cout << this ->EmpId << '\t';   //顯示0
          cout << (*this).name << endl;   //顯示zzz
     }
};
int main()    
{
     Employee emp1;   //建立無參數物件
     cout << "ID\tEmpName\n";
     cout << "---\t-------\n";
     emp1.outputEmp();
     emp1.setEmp(101,"TOM");
     emp1.outputEmp();
     system("cls");
     system("pause");
     return 0;
}

物件陣列

宣告類別型態的陣列與宣告一般資料型態的陣列一樣,只是資料型態給違使用者自訂的類別型態

類別名稱 陣列名稱[長度];


class Number
{
     int num;
public:
     void setNumber(void)
     {
         cout << "請輸入整數:";
         cin >> num;
     }
     void showNumber()   //輸出圖書資料函數
     {
         cout << num << '\t';   //輸出num資料
     }
};
int main()
{
     Number n[3];   //建立Number型態陣列
     for(int i=0;i<3;i++)
     {
         n[i].setNumber();   //呼叫物件setNumber 函數
     }
     cout << "輸入三個整數為:";
     for(int j=0;j<3;j++)
     {
         n[j].showNumber();   
     }
     cout << endl;
     system("pause");
     return 0;
}
//上面範例是建立Number類別物件陣列n[3],然後各元素呼叫自己的setNumber成員函數,讀取與設定元素的值
再呼叫showNumber成員函數,讀取與 設定元素的num值.
⚠️ **GitHub.com Fallback** ⚠️