前面兩篇文章我相信大家反復讀了之后對這節不陌生了:
首先來看代碼:
class Demo
{
public://靜態成員變量static const int sx = 0;//靜態函數static void SF1()
{}
public://成員變量int x;
public://成員函數void F1()
{cout << "I'm from Demo::F1()" << endl;}void F2()
{cout << "I'm from Demo::F1()" << endl;}virtual void F3()
{cout << "virtual F3()" << endl;}
public://構造函數,C++語法不允許獲取構造函數和析構函數地址,要分析其地址,只能查看生產的匯編代碼了。Demo(){}//析構函數~Demo(){}
};
typedef void (Demo::*Func)();
typedef void(*func)();
union
{Func f;void *addr;
}ut;int main(int argc, char** argv)
{int i = 0;cout << "main()函數的地址是 :" << std::hex << std::showbase << main << endl;ut.f = &Demo::F1;cout << "成員函數F1()的地址是 :"