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

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

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

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

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

1 class Func {
2 public:
3 virtual ~Func();
4 virtual double operator()(double) = 0;
5 };
6
7 template <class C>
8 class MFunc : public Func {
9 public:
10 MFunc( C &obj, double (C::*f)(double) ): obj_(obj), f_(f) {}
11 double operator ()( double d ) { return (obj_.*f_)( d ); }
12 private:
13 C &obj_;
14 double (C::*f_)( double );
15 };
16
17
18 AClass anObj;
19 MFunc<AClass> f( anObj, &AClass::aFunc );
20 double area = integrate( f, 0.0, 2.71828 );

posted on 2011-05-23 19:09  Joshua Leung  阅读(190)  评论(0编辑  收藏  举报

导航