C++ 在用c+编写程序时+;使用多个文件是否每个类都需要自己的文件?

C++ 在用c+编写程序时+;使用多个文件是否每个类都需要自己的文件?,c++,file,C++,File,在一个程序中使用多个文件,特别是较大的程序,可以为用户节省很多麻烦,甚至可以节省更多的滚动时间,但是是否有必要为我希望在应用程序中表示的每个类或对象分别使用.cpp和.h文件?将类分组为多个逻辑相关类的模块是否更好,在这些模块中它们共享.cpp和.h文件 谢谢。不,没有必要为每个类单独设置.cpp和.h文件,尽管这是一种常见的组织技巧。如果您(或试图使用您的代码的人)未使用功能丰富的IDE(例如文本编辑器),则此功能尤其有用。如果不能从文件名中识别文件的内容,那么在大型项目中查找类将非常困难。即

在一个程序中使用多个文件,特别是较大的程序,可以为用户节省很多麻烦,甚至可以节省更多的滚动时间,但是是否有必要为我希望在应用程序中表示的每个类或对象分别使用.cpp和.h文件?将类分组为多个逻辑相关类的模块是否更好,在这些模块中它们共享.cpp和.h文件


谢谢。

不,没有必要为每个类单独设置.cpp和.h文件,尽管这是一种常见的组织技巧。如果您(或试图使用您的代码的人)未使用功能丰富的IDE(例如文本编辑器),则此功能尤其有用。如果不能从文件名中识别文件的内容,那么在大型项目中查找类将非常困难。即使使用像VisualStudio这样的IDE,我也喜欢每个文件有一个类的便利性,因为这样我就可以在我的类中导航,而不必使用类资源管理器或其他工具


您给出了将多个类混合到一个源文件和一个头文件中的示例,但您没有提到的另一个替代方案是,您可以将所有内容都放在头文件中,这可能非常有用,例如,创建只包含头文件的库(这意味着用户只需担心包含头文件),或者用于模板。

No,虽然作为一种组织技术,这是一种常见的做法,但没有必要为每个类分别设置.cpp和.h文件。如果您(或试图使用您的代码的人)未使用功能丰富的IDE(例如文本编辑器),则此功能尤其有用。如果不能从文件名中识别文件的内容,那么在大型项目中查找类将非常困难。即使使用像VisualStudio这样的IDE,我也喜欢每个文件有一个类的便利性,因为这样我就可以在我的类中导航,而不必使用类资源管理器或其他工具


您给出了将多个类混合到一个源文件和一个头文件中的示例,但您没有提到的另一个替代方案是,您可以将所有内容都放在头文件中,这可能很有用,例如,创建只包含头的库(这意味着用户只需担心包含头文件),或用于模板。

每个类使用一个.h和.cpp。如果你想将多个类分组到一个“模块”中,请使用名称空间。我同意Borgeader的观点,但唯一的负面影响是,如果你最终拥有大量的类,并且没有实现文件,你的编译/链接时间会比合并更少的文件增加很多。如果你愿意,你可以在一个文件中有多个类。@Borgleader所描述的是良好的实践,但不是语言要求。你必须做对你有意义的事情。通常,您会有几个非常密切相关的类,可能是一组小类,它们的唯一目的是成为更大类的成员。您可以将所有这些密切相关的类分组到一个源(.cpp)文件中。此外,如果您正在处理的代码被其他人使用(例如,您可能正在处理库模块),则您可能希望将整个API放在单个头(.h)文件中,即使类实现本身分布在多个源文件中。这将使您的用户更容易包含一个标题。每个对象包含一个文件将是非常极端的!每个类使用一个.h和.cpp。如果你想将多个类分组到一个“模块”中,请使用名称空间。我同意Borgeader的观点,但唯一的负面影响是,如果你最终拥有大量的类,并且没有实现文件,你的编译/链接时间会比合并更少的文件增加很多。如果你愿意,你可以在一个文件中有多个类。@Borgleader所描述的是良好的实践,但不是语言要求。你必须做对你有意义的事情。通常,您会有几个非常密切相关的类,可能是一组小类,它们的唯一目的是成为更大类的成员。您可以将所有这些密切相关的类分组到一个源(.cpp)文件中。此外,如果您正在处理的代码被其他人使用(例如,您可能正在处理库模块),则您可能希望将整个API放在单个头(.h)文件中,即使类实现本身分布在多个源文件中。这将使您的用户更容易包含一个标题。每个对象包含一个文件将是非常极端的!