C ++中“自由功能”一词的含义是什么?


95

在阅读boost :: test文档时,我遇到了“自由功能”一词。我了解的是,自由函数是任何不返回任何东西的函数(其返回类型为void)。但是在进一步阅读之后,自由函数似乎也没有接受任何参数。但是我不确定。这些都是我的假设。那么有人可以定义自由功能吗?

Answers:


114

在C ++中,术语“ 自由函数”仅指非成员函数。不是成员函数的每个函数都是自由函数。

struct X {
    void f() {}               // not a free function
};
void g() {}                   // free function
int h(int, int) { return 1; } // also a free function

假设我们的main函数位于另一个文件中,并且在其中需要调用free函数,那么我应该怎么做才能在其他文件中包含free函数,稍后再将其包含在main文件中?我的意思是我应该在其中实现我的自由功能的hpp文件中创建该文件吗(可能是静态内联函数)?
2012年

4
通常,您将在头文件中声明它们,并在单独的源文件中实现它们(某些例外,例如模板函数)。这将是更好地打开一个新的问题,对特定主题,但这样的人可以更详细等回答您
格奥尔格Fritzsche也
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.