Ошибка компиляции программы на С ++ в Visual Studio 2010 - PullRequest
3 голосов
/ 31 января 2011

Эй, ребята, мне кажется, что я не могу скомпилировать мою следующую программу на С ++ в Visual Studio 2010. У меня уже есть рабочая сборка того же кода, поэтому я знаю, что код правильный. Но я понятия не имею, с чем и как он был скомпилирован.

Так что я был бы признателен, если бы кто-то просто скопировал код и попытался скомпилировать его в VS 2010.

Код-

http://codepad.org/4VtrVBdK

новый - Хорошо, редактирование в соответствии с комментариями ниже ... теперь единственные проблемы, которые, кажется, остались, связаны с вызовами перегруженных функций ... так как это сделать?

Ответы [ 2 ]

2 голосов
/ 31 января 2011

, поэтому я знаю, что код правильный

То, что вы "знаете", является ложным.Код неправильный многими способами.Вот только один пример:

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"

Ни один из них не является частью Стандарта.Если вы можете заставить их скомпилироваться, это только потому, что ваш компилятор предвидел вашу ошибку.Но это все равно ошибка.

0 голосов
/ 31 января 2011

Похоже, вы пропали без вести using namespace std;

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...