嘿伙计们,我似乎无法在Visual Studio 2010中编译我的以下c ++程序。我已经有相同代码的工作版本,所以我知道代码是正确的。但我不知道它是什么或如何编译的。
所以如果有人可以复制代码并尝试在VS 2010中编译它,我将不胜感激。
代码 -
新 - 确实根据下面的评论进行了编辑..现在唯一的问题似乎与调用重载函数有关...那么如何去做呢?
答案 0 :(得分:2)
所以我知道代码是正确的
你所知道的是假的。 许多方式的代码是错误的。这只是一个例子:
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"
这些内容均不属于本标准的一部分。如果你可以让它们编译,那只是因为你的编译器在预料到你的错误。但这仍然是一个错误。
答案 1 :(得分:0)
您似乎缺少using namespace std;