您的位置:首页 > 编程语言 > C语言/C++

C++成员函数指针及C++函数对象

2011-05-23 19:09 501 查看
今天下午去图书馆淘书,又把《C++必知必会》借来了。我记得自己是没怎么看过的,翻了几页才发现很多文字似曾相识。原来当初就看了两三节,真是汗颜。

C++这门课程当初学得倒是挺好,不过时过境迁,许多生僻的语法大抵都忘光了。比如说函数成员,看到"->*"这玩艺儿我心里都发忤。

好还,谷歌一下就真相大白了:http://campus.chsi.com.cn/xy/com/201006/20100617/97808273.html

说实话,《C++必知必会》这本书翻译得太过稀烂,看到他把积分翻译成整合,哥不禁会心地笑了。为了表示我读过,我把最后一段代码Mark一下。

class Func {
public:
virtual ~Func();
virtual double operator()(double) = 0;
};

template <class C>
class MFunc : public Func {
public:
MFunc( C &obj, double (C::*f)(double) ): obj_(obj), f_(f) {}
double operator ()( double d ) { return (obj_.*f_)( d ); }
private:
C &obj_;
double (C::*f_)( double );
};

AClass anObj;
MFunc<AClass> f( anObj, &AClass::aFunc );
double area = integrate( f, 0.0, 2.71828 );
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: