函数实现在单独文件中的正确语法是什么?例如:独立文件中的函数实现
foo.h中
int Multiply(const int Number);
Foo.cpp中
#include "foo.h"
int Multiply(const int Number)
{
return Number * 2;
}
我看到这个用了很多,但是当我尝试它,我得到不必做错误缺少main()
功能。即使在我尝试编译工作代码时,我也会得到这个错误。
函数实现在单独文件中的正确语法是什么?例如:独立文件中的函数实现
foo.h中
int Multiply(const int Number);
Foo.cpp中
#include "foo.h"
int Multiply(const int Number)
{
return Number * 2;
}
我看到这个用了很多,但是当我尝试它,我得到不必做错误缺少main()
功能。即使在我尝试编译工作代码时,我也会得到这个错误。
粗略地说,您需要在正在编译的某个C++文件中包含main()函数。
当编译器说,你只需要有一个main()方法的Foo.cpp中里面,像这样:
#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
`main`函数是否需要返回任何东西?另外,我在``apstring.cpp`文件(它赞扬`apstring.h`)中的任何地方都没有看到`main`。 – Maxpm 2010-12-07 15:21:58
通常人们做的是单独的主要功能和“帮手”功能。看到我的编辑 – 2010-12-07 15:23:06
C++中的每个程序都是一个或多个的集合翻译单元,又名源文件。
将这些文件编译后,链接器搜索程序的入口点,即int main()
函数。由于它没有找到它,它会给你一个错误。
不要忘记,构建该程序正在生成可执行文件。没有入口点的可执行文件是无稽之谈。
你应该提到,这应该是一个没有主的图书馆。只要将项目的配置类型(如果使用Visual Studio)更改为库。 – 2010-12-07 16:21:35