c++對象指標-01(轉載)

來源:互聯網
上載者:User

標籤:

1.指向對像的指標
在建立對像時,編譯系統會為每一個對像分配一定的儲存空間,以存放其成員,對像空間的起始地址就是
對像的指標。可以定義一個指標變數,用來存和對像的指標。如果有一個類:
class Time
{
   public:
 int hour;
        int minute;
        int sec;
        void get_time();
};
void Time::get_time()
{
   cout << hour << ":" << minute << ":" << sec << endl;
}

在此有以下語句:
Time *pt;//定義pt 為指向Time類對像的指標變數
Time t1;//定義t1為Time類對像
pt=&t1;//將t1的起始地址賦給pt

這樣,pt 就是指向Time類對象的指標變數,它指向對象t1。
定義指向類對象的指標變數的一般形式為:

類名 *對象指標名;

可以通過對象指標訪問對象和對象的成員。如:
*pt       pt所指向的對像,即t1
(*pt).hour      pt所指向的對象中的hour成員,即t1.hour
pt->get_time()  pt把指向的對象中的get_time函數,即t1.get_time()
(*pt).get_time()

2.指向對象成員的指標

a.指向對象資料成員的指標
定義指向對象資料成員的指標的方法與定主指向變通的指標變數的方法相同。如:
int *p;

定義指向對象資料成員的指標變數的一般形式為:

資料類型名 *指標變數名;

b.指向對象成員函數的指標

定義指向對象成員函數的指標變數的方法和定義指向變通函數的指標變數方法有所不同。
定義指向變通函數的指標變數的方法:

資料類型名  (*指標變數名)();如:
void (*p)();//p是指向void型函的指標變數

定義指向成員函的指標:

資料類型名 (類名::*指標變數名)();
使指標變數指向一個公用成員函數的一般形式為
指標變數名=&類名::成員函數名;

樣本:

#include <iostream>
using namespace std;
class Time
{
 public:
  Time(int ,int ,int );
  int hour;
  int minute;
  int sec;
  void get_time();
};
Time::Time(int h,int m,int s)
{
 hour = h;
 minute= m;
 sec = s;
}
void Time::get_time()
{
 cout << hour << ":" << minute << ":" << sec << endl;
}

int main()
{
 Time t1(10,13,56); //定義Time類對象t1
 int *p1=&t1.hour;//定義指向整型資料的指標變數p1,並使p1指向t1.hour
 cout << *p1 << endl;
 t1.get_time();//調用對象t1的成員函數get_time()

 Time *p2=&t1;//定義指向Time類對象的指標變數p2,並使p2指向t1
 p2->get_time();//調用p2所指向對象的get_time()函數
 void (Time::*p3)();//定義指向Time類公用成員函數get_time
 p3 = &Time::get_time;//使p3指向Time類公用成員函數get_time
 (t1.*p3)();//調用對象t1中p3所指的成員函數

 return 0;
}

c++對象指標-01(轉載)

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.