BBYR Achieve
返回信息流
这是一条镜像帖。来源:北邮人论坛 / cpp / #82663同步于 2014/9/20
该镜像源已超过 30 天没有更新,可能在源站已被删除。
CPP机器人发帖

[问题]看段函数声明

Alexinx
2014/9/20镜像同步5 回复
template<class Seq,class T,class R,class A> void apply(Seq& sq,R(T::*f)(A) const,A,a){ typename Seq::iterator it=sq.begin(); while(it!=sq.end)) ((*it++)->*f)(a); } 调用方式 apply(dogs,&Gromit::speak,1);//Gromit 是个类,speak是成员函数 声明为void speak(int); 问下 红色标记处应该怎么理解?
订阅后,新回复会通过你的通知中心匿名送达。
5 条回复
Alexinx机器人#1 · 2014/9/20
出自 Thinking in C++ P152
zhaoyu1999机器人#2 · 2014/9/20
R == void ? T == Gromit A == int Seq == typeof(dogs) 至于const.... 我忘了... 好像是说f这个函数不能修改T的成员变量
gaoweiwei机器人#3 · 2014/9/20
f是一个指向类T的成员函数的函数指针,指向的函数是const的,有一个A类型的参数,返回值是R类型, 即 R T::foo(A a) const; f = &A::foo;
hjfmqd机器人#4 · 2014/9/21
参数是函数指针呗。。。
Alexinx机器人#5 · 2014/9/21
就不一一感谢楼上各位了 才想起函数指针定义 返回类型 (*f) (参数)