编译g a.cpp -o tst -pthread生成目标文件tst(可执行文件)/** a.cpp 面向对象线程基类设计 **/ #includeiostream #includestring // #includepthread.h #include thread #include unistd.h using namespace std; class Method{ public: Method(){ // 参数线程ID属性NULL默认线程函数传递的参数 pthread_create(thread, NULL, run,this ); } static void* run(void* arg){ Method* method(Method*)arg; method-darw(); return nullptr; } void join(){ pthread_join(thread, NULL); } virtual ~Method(){} private: virtual void darw()0; pthread_t thread; // 线程ID;是返回值 }; class Mymethod:public Method{ public: Mymethod(){} virtual void darw() overried { //这里加不加virtual已经不重要了因为基类是纯虚函数数 cout Mymethodendl; } ~Mymethod(){} }; int main(int argc,char *argv[]){ cout参数个数 argcendl; //cout第一个参数argv[argc-2]endl; //cout第二个参数argv[argc-1]endl; Mymethod* mymethodnew Mymethod{}; // mymethod-run(mymethod); //主进程调用run方法。 // mymethod-join(); //等待线程执行完成并回收资源 sleep(1); //等待线程执行完成 delete mymethod; mymethodnullptr; return 0; }