在单独的文件中使用函数实现的正确语法是什么?例如:
foo.h中
int Multiply(const int Number);
Foo.cpp中
#include "foo.h"
int Multiply(const int Number)
{
return Number * 2;
}
我看到这个使用了很多,但是当我尝试它时,我得到一个与缺少main()
函数有关的错误。即使我尝试编译工作代码,我也会收到错误。
答案 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()
函数。由于它找不到它会给你一个错误。
不要忘记构建程序正在产生可执行文件。没有入口点的可执行文件是无稽之谈。