2010-12-07 63 views
3

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

foo.h中

int Multiply(const int Number); 

Foo.cpp中

#include "foo.h" 

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

我看到这个用了很多,但是当我尝试它,我得到不必做错误缺少main()功能。即使在我尝试编译工作代码时,我也会得到这个错误。

+1

你应该提到,这应该是一个没有主的图书馆。只要将项目的配置类型(如果使用Visual Studio)更改为库。 – 2010-12-07 16:21:35

回答

7

粗略地说,您需要在正在编译的某个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 
+0

`main`函数是否需要返回任何东西?另外,我在``apstring.cpp`文件(它赞扬`apstring.h`)中的任何地方都没有看到`main`。 – Maxpm 2010-12-07 15:21:58

+0

通常人们做的是单独的主要功能和“帮手”功能。看到我的编辑 – 2010-12-07 15:23:06

2

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

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

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