摘要: 成員函數(shù)指針與高性能的C++委托(上篇)
撰文:Don Clugston
引子
標準C++中沒有真正的面向?qū)ο蟮暮瘮?shù)指針。這一點對C++來說是不幸的,因為面向?qū)ο蟮闹羔槪ㄒ步凶觥遍]包(closure)”或”委托 (delegate)”)在一些語言中已經(jīng)證明了它寶貴的價值。在Delphi (Object Pascal)中,面向?qū)ο蟮暮瘮?shù)指針是Borland可視化組建庫(VCL,Visual Component Library)的基礎(chǔ)。而在目前,C#使”委托”的概念日趨流行,這也正顯示出C#這種語言的成功。在很多應(yīng)用程序中,”委托”簡化了松耦合對象的設(shè)計 模式[GoF]。這種特性無疑在標準C++中也會產(chǎn)生很大的作用。
很遺憾,C++中沒有”委托”,它只提供了成員函數(shù)指針(member function pointers)。很多程序員從沒有用過函數(shù)指針,這是有特定的原因的。因為函數(shù)指針自身有很多奇怪的語法規(guī)則(比如”->*”和”.*”操作 符),而且很難找到它們的準確含義,并且你會找到更好的辦法以避免使用函數(shù)指針。更具有諷刺意味的是:事實上,編譯器的編寫者如果
閱讀全文