C++ 将函数合并到源代码中的方法

C++ 将函数合并到源代码中的方法,c++,header-files,C++,Header Files,最近我开始开发一个程序,我们可以说它使用了大量的函数(全局函数),我开始在主源代码中包含所有函数,但我记得主代码应该尽可能干净。然后我开始制作头文件,并在这些头文件中定义函数体,然后通过 #include "headerFileName.h" 我想知道是否有更好的方法来实现这一点,或者与将所有定义都放在主源代码文件中相比,是否建议这样做 您真正想要做的是将函数的声明与其定义分开。函数声明如下所示: return_type function_name(function arguments...)

最近我开始开发一个程序,我们可以说它使用了大量的函数(全局函数),我开始在主源代码中包含所有函数,但我记得主代码应该尽可能干净。然后我开始制作头文件,并在这些头文件中定义函数体,然后通过

#include "headerFileName.h"

我想知道是否有更好的方法来实现这一点,或者与将所有定义都放在主源代码文件中相比,是否建议这样做

您真正想要做的是将函数的声明与其定义分开。函数声明如下所示:

return_type function_name(function arguments...);
并告诉编译器这个函数存在,接受这些类型的参数,但不告诉编译器函数是如何实现的。您将这些声明放在头文件中,任何包含头文件的人都可以使用该函数(不知道其定义)

在一个单独的.cpp文件中,放置函数的定义,如下所示

return_type function_name(function arguments...) {
    /* code */
}
这是真正的实现。您所做的是将“接口”(声明)与“实现”(定义)分离


至关重要的是,这意味着接口只指定您可以做什么,而不是如何在封面下完成。这确保了调用接口的其他函数不必担心(或知道)实现。如果您按照此标准编写代码,您的程序将更加模块化,维护更简单,并且更易于使用和推理。

您可能应该使用类而不是全局函数。这将大大简化你的生活。不要只是用方法把文件弄得乱七八糟。这些方法不能属于
实用程序
或类似的类吗?总之,你是对的,没有一个包含所有全局函数的主文件。你的大多数程序都使用相同的函数集吗?@PawełStawarz我开始使用类,但后来我意识到要调用函数,我必须创建类的对象,而这又不符合我的计划,所以我不得不求助于函数。@awesomeyi从外观上看,我会有很多函数,它们会做类似的事情,但它们都会起作用。。例如,我有多个记录事件的“报告”函数,但目前我对不同的事件有不同的“报告”函数。将来我可能会把它变成一个函数。哦,我明白了。然后.cpp文件也包含在主源代码中,对吗?谢谢您的快速回复。@MayurMohan:不,您可以将
.cpp
文件与其他源文件一起编译,并在最后将它们链接在一起。例如,
g++main.cpp utils.cpp myclass.cpp-o myprog
,如果您使用的是命令行g++编译器。在IDE中,您可以添加其他
.cpp
文件作为额外的源文件。