c++ - 每个基类的预写主函数

标签 c++ templates polymorphism program-entry-point

是否有一种明智的方法来执行以下操作: 我和其他人将编写许多可执行文件,许多将在未来添加。每个可执行文件都运行基 Worker 类的派生类。所以有 Worker1、Worker2、Worker3、...,每个可执行文件将执行不同的任务。

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

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

显然,输入的内容并不多,但我想避免代码重复,以防主函数将来需要更多逻辑。另外,我很好奇这是否可能。

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

感谢大家的帮助!

编辑:稍微简化了代码

最佳答案

使用可以在命令行上定义的宏。

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

例如,在 gcc 中,您可以按如下方式编译:

g++ -D'WORKER_TYPE=Worker1' main.cpp -o main

这将用 WORKER_TYPE 替换为 Worker1 进行编译。

关于c++ - 每个基类的预写主函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20038940/

相关文章:

c++ - 模拟进化类的最佳编程实践是什么?

c++ - 类模板 : restrict the template parameter

c++ - 使用带有可变参数模板函数的 decltype 的尾随返回类型

c++ - 为什么这个 sfinae 不起作用?

java - 多态性、转换为对象和类型删除

c++ - 好友函数 "non-lvalue in assignment"

c++ - std::forward 如何接收正确的参数?

c++ - 使用包含类的动态实例化后调用 C++ 重载运算符 [] 似乎不起作用

c++ - 使用 std::thread 从派生类调用重写方法

c++ - C++ 中的单元和集成测试