如何清理凌乱的主()?

时间:2011-08-24 07:28:07

标签: c++ main

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

2 个答案:

答案 0 :(得分:9)

避免像猪流感一样的全球/单身,这是一种不好的做法,并且可能对更大的多线程项目产生非常糟糕的影响。看到你正在使用C ++,你可以将你的应用程序包装成一个大型管理器类型类,它将所有内容都很好地考虑到一个适合你/你的编码风格的风格,然后主要是你需要做的是:

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

非常整洁

答案 1 :(得分:2)

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

另一种常见模式是将main的所有内容移动到一个类中,该类包含状态作为成员属性,并且具有run(或main根据需要调用它)成员函数。这允许轻松重构main,您不必将所有状态作为函数参数传递。有时这两个选项是混合的,并且类从main的参数初始化。

没有明确的答案,因为它取决于您main当前正在做什么,在某些情况下,如果不同的部分保留 long-ish 主要部分仍然有意义是明确分开的,而且太长长, long-ish long 是主观措施......