如何清理杂乱的main()

how to clean a cluttered main()?

本文关键字:main 何清理      更新时间:2023-10-16

为了保持main()(在c++中)尽可能干净/小,有几个选项你可以选择,但其中哪一个是最好的?在main中初始化所有变量,在main之外初始化它们为global,在.h中初始化它们,在main中初始化它们,但在其他地方设置它们的值(通过将它们传递给函数)。可能有其他方法,但是,保持main()尽可能干净/清晰/小的最佳方法是什么?

避免像猪流感一样的全局/单例,这是一种不好的做法,对大型多线程项目会产生非常糟糕的影响。鉴于你正在使用c++,你可以把你的应用程序包装成一个大的管理器类型类,它的所有东西都很好地融入了一个适合你/你的编码风格的风格,那么你主要需要做的就是:

int main(int argc, char** argv)
{
    Application MyApp(argc,argv);
    return MyApp.start();
}

非常整洁

有一些常见的模式,比如将数据和操作封装在类中是有意义的。例如,如果您从文件处理命令行参数或配置,您可以创建从argcargv初始化的Config类和/或可能的文件,然后将其用作用户可控参数的存储。

另一个常见的模式是将所有main移动到一个类中,该类包含作为成员属性的状态,并具有run(或main,您可以随意调用它)成员函数。这样可以轻松地重构main,而不必将所有状态作为函数参数传递。有时这两个选项混合使用,类从main的参数初始化。

没有明确的答案,因为这取决于你的main目前正在做什么,在某些情况下,如果不同的部分被清楚地分开,它仍然可以保持主,如果它不是长,其中是主观的衡量标准…