单独文件中的函数实现

时间:2010-12-07 15:17:19

标签: c++ function header implementation

在单独的文件中使用函数实现的正确语法是什么?例如:

foo.h中

int Multiply(const int Number);

Foo.cpp中

#include "foo.h"

int Multiply(const int Number)
{
    return Number * 2;
}

我看到这个使用了很多,但是当我尝试它时,我得到一个与缺少main()函数有关的错误。即使我尝试编译工作代码,我也会收到错误。

2 个答案:

答案 0 :(得分:7)

粗略地说,您需要在正在编译的C ++文件中包含main()函数。

正如编译器所说,你只需要在你的foo.cpp中有一个main()方法,如下所示:

#include "foo.h"
#include <iostream>

using namespace std;

int Multiply(const int Number)
{
    return Number * 2;
}

int main() {
    // your "main" program implementation goes here
    cout << Multiply(3) << endl;
    return 0;
}

或者您可以将主函数分成不同的文件,如下所示(如果您打算这样做,请省略foo.cpp中的main()块):

main.cpp

#include "foo.h"
#include <iostream>

using namespace std;

int main() {
   cout << Multiply(3) << endl;
   return 0;
}

然后像

一样编译它
g++ main.cpp foo.cpp

答案 1 :(得分:2)

C ++中的每个程序都是一个或多个 翻译单元 的集合,也就是源文件。

编译完这些文件后,链接器会搜索程序的入口点,即int main()函数。由于它找不到它会给你一个错误。

不要忘记构建程序正在产生可执行文件。没有入口点的可执行文件是无稽之谈。