嘿,我似乎无法得到我在Visual Studio 2010中编译的以下C++程序。我已经有了相同代码的工作版本,所以我知道代码是正确的。但我不知道它是什么或如何编译的。编译Visual Studio 2010中的C++程序错误
因此,如果有人可以只将代码复制,并尝试编译它在2010年VS
代码 - 我将不胜感激
新 - 确定没有编辑根据下面的评论..现在似乎只留下唯一的问题与调用重载函数有关...所以如何去做它?
嘿,我似乎无法得到我在Visual Studio 2010中编译的以下C++程序。我已经有了相同代码的工作版本,所以我知道代码是正确的。但我不知道它是什么或如何编译的。编译Visual Studio 2010中的C++程序错误
因此,如果有人可以只将代码复制,并尝试编译它在2010年VS
代码 - 我将不胜感激
新 - 确定没有编辑根据下面的评论..现在似乎只留下唯一的问题与调用重载函数有关...所以如何去做它?
看起来你错过using namespace std;
,所以我知道该代码是正确的
你 “知道” 什么是假的。代码错误很多方式。这里仅是一个示例:
for(unsigned int i=0;i<GPNO;i++) //SORTING ACCORDING TO FITNESS
for(unsigned int j=i+1;j<GPNO;j++)
if((gp[i]->fitness)>(gp[j]->fitness))
{
gp[i]->mycopy(tmp);
gp[j]->mycopy(gp[i]);
tmp->mycopy(gp[j]);
}
for(i=1;i<=no;i++)
{
gp[i]->mycopy(gp[GPNO-i]);
}
在第二for
环,i
是未申报。我怀疑原始编译器是VC6,它允许这样做。
另一个问题是你打电话的方式pow
。你用宏(这是公然邪恶的了)称呼它,比如:
pf[i].frq+=(unsigned int)pow(2,2*PF-1);
,编译器不知道你脑子里其中pow
版本。例如宏为此目的而邪恶的例子。这样做:
pf[i].frq+=(unsigned int)pow(2.0,2*PF-1);
或更好的是,摆脱宏。
的代码是错误又如:
#include "stdlib.h"
#include "conio.h"
#include "math.h"
这些都不包括是标准的一部分。如果你可以让它们编译,那只是因为你的编译器正在预测你的错误。但这仍然是一个错误。
如果你有编译错误,你应该把它们粘贴到你的问题中。 – 2011-01-31 20:02:04
fyi,有更好的方法来粘贴示例代码。例如此网站不仅突出显示代码,而且还编译它并为您运行它.. http://codepad.org/cXvCUcPV – 2011-01-31 20:04:14
我得到非常普遍的错误,我认为有人将不得不实际编译代码才能看到和理解错误。 – digster 2011-01-31 20:06:14