Simon 's Blog
» 做笔记做笔记
Toggle navigation
Simon 's Blog
HOME
总裁介绍
coper
zongcai
what
ARCH
TAGS
navigation
!!! std::tr1::bind()和std::tr1::function()的例子
? c++11_14 ?
2019-05-15 00:15:46
412
0
0
simon88
? c++11_14 ?
[TOC] # 线程库的常规设计 库提供一个`Thread`的基类,里面有(纯)虚函数`Thread::run()`,我们需要从`Thread`派生一个基类,然后覆写`run()·函数,然后`start()`运行线程。 # 基于std::tr1::bind()和`std::tr1::function()`的设计 ``` class Thread { public: typedef std::tr1::function<void()> TrCallBack; Thread(TrCallBack &tcb); private: void start(); void run(); TrCallBack _tcb; }; Thread::Thread(TrCallBack &tcb):_tcb(tcb) {} void Thread::start() { // do something to call run. } void Thread::run() { _tcb(); } class Foo { public: void func1(); void func2(int a); void func3(string b); }; int main(int argc,char **argv) { Foo foo; Thread t1(std::tr1::bind(&Foo::func1, &foo)); Thread t2(std::tr1::bind(&Foo::func2, &foo,1)); Thread t3(std::tr1::bind(&Foo::func3, &foo,"hey guy")); t1.start(); t2.start(); t3.start(); return 0; } ```
上一篇:
设计的接口
下一篇:
c语言编译模型
0
赞
412 人读过
新浪微博
微信
腾讯微博
QQ空间
人人网
提交评论
0
条评论
More...
<>