//This is UtilityHelper.h #include <iostream> #include <uuid/uuid.h> #include <ctime> using namespace std; class UtilityHelper { public: static char *uuidValue; static char *dtValue; UtilityHelper(); ~UtilityHelper(); char *getUuid(); char *getTimeNow(); };
The UtilityHelper.cpp which implementation parts of declaration in UtilityHelper.h
#include <UtilityHelper.h> char * UtilityHelper::uuidValue=(char*)malloc(40); char * UtilityHelper::dtValue=(char*)malloc(20); char * UtilityHelper::getTimeNow() { time_t rawTime=time(NULL); struct tm tmInfo=*localtime(&rawTime); strftime(dtValue,20,"%Y%m%d%H%M%S",&tmInfo); return dtValue; } char* UtilityHelper::getUuid() { uuid_t newUUID; uuid_generate(newUUID); uuid_unparse(newUUID,uuidValue); return uuidValue; } UtilityHelper::UtilityHelper() { cout<<"This is UtilityHelper constructor and now is "<<getTimeNow()<<endl; } UtilityHelper::~UtilityHelper() { cout<<"This is UtilityHelper deconstructor and now is "<<getTimeNow()<<endl; }
Invoke in main.cpp
#include <iostream> #include <uuid/uuid.h> #include <sstream> #include <ctime> #include <unistd.h> #include <ostream> #include <fstream> #include <istream> #include <random> #include <vector> #include "UtilityHelper.h" void class9(); int main() { class9(); return 0; } void class9() { UtilityHelper uh; for(int i=0;i<100;i++) { cout<<"Index="<<i<<",uuidvalue="<<uh.getUuid()<<",now is "<<uh.getTimeNow()<<endl; usleep(100000); } cout<<"Finished in class9() and now is "<<getTimeNow()<<endl; free(UtilityHelper::dtValue); free(UtilityHelper::uuidValue); }
Compile via below command,please pay attention to the below command which adds the additional cpp file UtilityHelper.cpp
g++ -g -std=c++2a -I. h1.cpp UtilityHelper.cpp -o h1 -luuid
Run ./h1