08面向对象编程风格
来源:互联网 发布:c语言 纸牌 编辑:程序博客网 时间:2024/06/10 19:01
1.Thread类图
2.代码
Thread.h#ifndef _THREAD_H_#define _THREAD_H_#include <pthread.h>class Thread{public:Thread();virtual ~Thread();void Start();void Join();void SetAutoDelete(bool autoDelete);private:static void* ThreadRoutine(void* arg);virtual void Run() = 0;pthread_t threadId_;bool autoDelete_;};#endif // _THREAD_H_
Thread.cpp#include "Thread.h"#include <iostream>using namespace std;Thread::Thread() : autoDelete_(false){cout<<"Thread ..."<<endl;}Thread::~Thread(){cout<<"~Thread ..."<<endl;}void Thread::Start(){pthread_create(&threadId_, NULL, ThreadRoutine, this);}void Thread::Join(){pthread_join(threadId_, NULL);}void* Thread::ThreadRoutine(void* arg){Thread* thread = static_cast<Thread*>(arg);thread->Run();if (thread->autoDelete_)delete thread;return NULL;}void Thread::SetAutoDelete(bool autoDelete){autoDelete_ = autoDelete;}
Thread_test.cpp#include "Thread.h"#include <unistd.h>#include <iostream>using namespace std;class TestThread : public Thread{public:TestThread(int count) : count_(count){cout<<"TestThread ..."<<endl;}~TestThread(){cout<<"~TestThread ..."<<endl;}private:void Run(){while (count_--){cout<<"this is a test ..."<<endl;sleep(1);}}int count_;};int main(void){/*TestThread t(5);t.Start();t.Join();*/TestThread* t2 = new TestThread(5);t2->SetAutoDelete(true);t2->Start();t2->Join();for (; ; )pause();return 0;}
阅读全文
1 0
- 08面向对象编程风格
- 面向对象编程风格&基于对象编程风格
- Essential C++笔记(面向对象编程风格)
- 面向对象编程风格 VS 基于对象编程风格(boost::bind/function)
- 面向对象编程风格 VS 基于对象编程风格(boost::bind/function)
- muduo2 面向对象编程风格 VS 基于对象编程风格(boost::bind/function)
- 第五章 面向对象的编程风格(面向对象编程概念)
- 第五章 面向对象的编程风格(面向对象的编程思维)
- 建立优美的面向对象JS编程风格
- 第二章 面向对象的编程风格(调用函数)
- muduo网络库学习笔记(0):面向对象编程风格和基于对象编程风格的比较
- 面向对象编程风格 & 基于对象编程(boost::bind/function)
- 面向对象的风格和基于对象的风格程序设计
- C语言实现动态数组(以面向对象的编程风格)
- 第二章 面向对象的编程风格(如何编写函数)
- 第二章 面向对象的编程风格(使用静态局部变量)
- 第二章 面向对象的编程风格(声明inline函数)
- 第二章 面向对象的编程风格(提供默认参数值)
- [Java之五]数组及队列(1)
- dockerfile 之触发器 ONBUILD
- oracle--geometry关系运算
- c++ 内联函数
- VR 原理
- 08面向对象编程风格
- Ctex初学相关
- 两种方法实现文字的移动
- HDU6053-TrickGCD
- [Java之六]数组及队列(2)
- kali linux VMwareTools 安装
- webpack 入门例子
- android中与web端的简单登录数据实现(AsyncHttpClient)
- HTML入门笔记19-HTML中Order List标签