c – 传递静态方法作为参数,不需要地址操作符?
发布时间:2020-12-16 09:37:46 所属栏目:百科 来源:网络整理
导读:class ThreadWorker{public: ThreadWorker(void); virtual ~ThreadWorker(void); static void DoSomething();};int main(){ boost::thread thread1(ThreadWorker::DoSomething); boost::thread thread2(ThreadWorker::DoSomething); boost::thread thread3(T
class ThreadWorker { public: ThreadWorker(void); virtual ~ThreadWorker(void); static void DoSomething(); }; int main() { boost::thread thread1(ThreadWorker::DoSomething); boost::thread thread2(ThreadWorker::DoSomething); boost::thread thread3(&ThreadWorker::DoSomething); } 我正在玩Boost.Thread并且我注意到在将静态成员函数作为参数传递时是否使用运算符(&)的地址似乎并不重要.没关系吗?如果没有,为什么?一种方式比另一种更正确吗? 解决方法
它实际上并不重要.函数(自由函数和静态成员函数,而不是非静态成员函数)衰减到函数指针.没办法比另一个更正确,我碰巧更喜欢明确的一个.
C 11标准,4.3 / 1:
C 11标准,5.2.2 / 1 – 函数调用:
(编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |