1. 程式人生 > >c++指向物件成員函式的指標

c++指向物件成員函式的指標

#include<iostream>
#include <iomanip>
using namespace std;
class Time
{
private:
    int hour;
    int minute;
    int second;
public:
    Time(int a, int b, int c)//建構函式
    {
        cout << "Start" << endl;
        Set_Time(a, b, c);
    }
    ~Time()
    {
        cout << "Finished"
<< endl; } void Set_Time(int a, int b, int c) { hour = a; minute = b; second = c; } void ShowTime() { cout << "Time is " << setw(2) << hour << ":" << setw(2) << minute << ":" << setw(2) << second << endl; } }; int
main() { Time t1(12, 59, 43); void (Time::*p)();//宣告一個指向類公用函式的指標 p = &Time::ShowTime;//指向Time的ShowTime (t1.*p)();//呼叫 system("pause"); return 0; }

成員函式的入口地址的正確寫法是 &類名::成員函式名 不能寫成p=t1.ShowTime;//t1是物件
成員函式不是存放在物件的空間中,而是存放在物件外的空間中,如果有多個同類物件,他們共用一個函式程式碼段。