c++指向物件成員函式的指標
阿新 • • 發佈:2019-02-01
#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是物件
成員函式不是存放在物件的空間中,而是存放在物件外的空間中,如果有多個同類物件,他們共用一個函式程式碼段。