是否有合理的方法来执行以下操作: 有许多可执行文件将由我自己和其他人编写,很多将在未来添加。每个可执行文件都运行基本Worker类的派生类。所以有Worker1,Worker2,Worker3,......,每个可执行文件都会执行不同的任务。
尽管每个都不同,但它们的主要功能始终相同:
int main() {
Worker1 myWorker;
return myWorker.Initialize_And_Run();
}
显然,打字并不多,但我希望避免代码重复,以防主要功能在将来需要更多逻辑。另外,我只是好奇这是否可能。
有没有办法编写预先编写的主函数来避免重复?
感谢大家的帮助!
编辑:稍微简化了代码
答案 0 :(得分:1)
使用宏,您可以在命令行上定义。
int main()
{
WORKER_TYPE myWorker;
return myWorker.Initialize_And_Run();
}
例如,在gcc中,您可以按如下方式编译它:
g++ -D'WORKER_TYPE=Worker1' main.cpp -o main
这将编译为WORKER_TYPE
替换为Worker1
。