错误C2084:function' int main(void)'已经有一个身体

时间:2017-08-01 11:22:38

标签: c++

有人可以帮我解决这个错误

我在visual studio 2013 express中的源文件下有两个文件 main.cpp和Variables.cpp

以下是代码

ERROR SCREENSHOT WARNING AND ERROR SCREENSHOT

的main.cpp

#include <iostream>
#include "Variables.cpp"
using namespace std;

int main()
{
int a = 3;

cout << "Hello World" << endl;
cout << "The value of a: " << a << endl;
getchar();

return 0;

}

Variables.cpp

#include <iostream>
#include <string>

using namespace std;

int main()
{
//Declaring Variables
int a = 3;
float b = 33.3;
double c = 223.334;
char d = 'i';
string e = "This is a test text !";

//Printing
cout << "The value of a: " << a << endl;
cout << "The value of b: " << b << endl;
cout << "The value of c: " << c << endl;
cout << "The value of d: " << d << endl;
cout << "The value of e: " << e << endl;

//Show Msg
getchar();
return 0;

}

错误

警告1
警告C4305:&#39;初始化&#39; :截断来自&#39; double&#39;到&#39;漂浮&#39; c:\ users \ iifra \ documents \ visual studio 2013 \ projects \ testproject001 \ testproject001 \ variables.cpp 11 1 TestProject001

错误2
错误C2084:function&#39; int main(void)&#39;已经有一个正文c:\ users \ iifra \ documents \ visual studio 2013 \ projects \ testproject001 \ testproject001 \ main.cpp 6 1 TestProject001

警告3
警告C4305:&#39;初始化&#39; :截断来自&#39; double&#39;到&#39;漂浮&#39; c:\ users \ iifra \ documents \ visual studio 2013 \ projects \ testproject001 \ testproject001 \ variables.cpp 11 1 TestProject001

2 个答案:

答案 0 :(得分:1)

将Variables.cpp中存在的函数main()的名称更改为任何其他名称。 您不能在同一项目下使用两个main()函数,因为您的OS在运行项目时会找到项目中的主函数。在这里操作系统会混淆哪个主要功能首先调用。

答案 1 :(得分:0)

这是一个初学者的问题。两个方面:

  • 你只能拥有1个'主'功能,因为'main'是特殊的(入口点)
  • 您可以使用多个源文件;使用标题声明和定义来源

e.g:

主要来源:

// main.cpp
#include <iostream>
#include "variables.hpp"

int main()
{
   int a = 3;

   std::cout << "Hello World" << std::endl;
   std::cout << "The value of a: " << a << std::endl;

   //invoke f 
   f();

   //getchar();

   return 0;    
}

变量标题:

//variables.hpp

void f();

变量来源:

//variables.cpp
#include <iostream>
#include "variables.hpp"

void f()
{
   std::cout << "Bla" << std::endl;
}

编译器将它们视为两个转换单元并创建两个obj文件(即main.obj和variables.obj),链接器将它们合并为一个exe。

您正在使用Visual Studio。将头文件放在头文件夹下,将cpp文件放在源文件夹下。