//Util.h #ifndef _Util_H_ #define _Util_H_ #include <iostream> #include <random> using namespace std; template <class T> class Util { public: random_device rd; mt19937 mt{rd()}; Util(); T getRandom(T min, T max); }; #endif //Util.cpp #include "Model/Util.h" template <class T> Util<T>::Util() { cout << "Constructor!" << endl; } template <class T> T Util<T>::getRandom(T min, T max) { uniform_int_distribution<T> uid(min, max); return uid(mt); } //main.cpp #include "Model/Util.h" #include "Model/Util.cpp" void showRandom(int x) { Util<uint32_t> ul; for(int i=0;i<x;i++) { uint32_t num=ul.getRandom(0,UINT32_MAX); cout<<i<<","<<num<<endl; } } int main(int args,char **argv) { showRandom(atoi(argv[1])); }
Compile
g++ -g -std=c++2a -I. *.cpp ./Model/*.cpp -o h1
Run
./h1 100
标签:functions,generic,Util,int,file,cpp,Model,include From: https://www.cnblogs.com/Fred1987/p/16930532.html