Posted on 2007-08-03 12:58
寶杉 閱讀(138)
評論(0) 編輯 收藏 引用 所屬分類:
C++
聲明:
先定義函數(shù),void print(string str);
聲明一個(gè)函數(shù)指針,void ( *p )( string ) = NULL;
指向copy函數(shù),p = & print; 或 p = print;
調(diào)用指針函數(shù),p( “hello” );
可以把多個(gè)函數(shù)放在一個(gè)指針數(shù)組里,然后通過數(shù)組對應(yīng)指針方便調(diào)用函數(shù)。
例子:Diary files\C++exams\pointer_func
動(dòng)態(tài)綁定一個(gè)函數(shù)
void caller(void(*ptr)())
{
ptr(); /* 調(diào)用ptr指向的函數(shù) */
}
void func();
int main()
{
p = func;
caller(p); /* 傳遞函數(shù)地址到調(diào)用者 */
}
如果賦了不同的值給p(不同函數(shù)地址),那么調(diào)用者將調(diào)用不同地址的函數(shù)。賦值可以發(fā)生在運(yùn)行時(shí),這樣使你能實(shí)現(xiàn)動(dòng)態(tài)綁定。