我收到以下错误:`main'的多重定义
我创建了一个新项目,里面有两个c ++文件:
档案1
#include <iostream>
using namespace std;
int main()
{
cout<<"Hello World";
//fflush(stdin);
//getchar();
return 0;
}
文件2
#include <iostream>
using namespace std;
int main()
{
cout<<"Demo Program";
return 0;
}
当我按下Build项目并运行时,我收到错误。我该如何运行这些文件?
答案 0 :(得分:11)
在同一个项目中不能有两个主要功能。将它们放在单独的项目中或重命名其中一个函数,并从另一个主函数中调用它。
您的项目中永远不能有多个main()函数,因为它是入口点,无论参数列表是什么样的。
只要参数列表不同(function overloading),您就可以有多个其他函数声明。
档案1
#include <iostream>
using namespace std;
int main()
{
cout<<"Hello World";
otherFunction();
return 0;
}
文件2
#include <iostream>
using namespace std;
void otherFunction()
{
cout<<"Demo Program";
}
不要忘记适当的#includes。
答案 1 :(得分:4)
你不能有两个主要功能。事实上,你的项目(而不是文件)中不能有任何两个具有相同签名的功能
正如Mr.TAMER所说main是一个特例,你甚至不能有两个叫main
的函数。
答案 2 :(得分:1)
确定您希望将哪个文件作为项目的入口点。
在其他文件中,将方法名称更改为其他名称。您可以从您在步骤1中选择的文件中调用它。
main
是您程序的入口点,您不能有多个入口点。
有关更清晰的说明,请参阅:Two 'main' functions in C/C++
答案 3 :(得分:0)
由于编译器从main()开始执行,因此不能在同一个项目中使用相同的函数签名。如果定义多次main(),则会产生错误。
file1.c中
#include <iostream>
#include <file2.h>
using namespace std;
int main()
{
cout<<"Hello World";
//fflush(stdin);
//getchar();
return 0;
}
在file2.h中,你可以定义file2.c的功能(首先重命名file2的main())