每个基类的预编写主函数

时间:2013-11-18 02:13:02

标签: c++ templates polymorphism main

是否有合理的方法来执行以下操作: 有许多可执行文件将由我自己和其他人编写,很多将在未来添加。每个可执行文件都运行基本Worker类的派生类。所以有Worker1,Worker2,Worker3,......,每个可执行文件都会执行不同的任务。

尽管每个都不同,但它们的主要功能始终相同:

int main() {
    Worker1 myWorker;
    return myWorker.Initialize_And_Run();
}

显然,打字并不多,但我希望避免代码重复,以防主要功能在将来需要更多逻辑。另外,我只是好奇这是否可能。

有没有办法编写预先编写的主函数来避免重复?

感谢大家的帮助!

编辑:稍微简化了代码

1 个答案:

答案 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