2013-11-24 4 views
0

Я работаю над Dice Project и не смог понять, почему функции drawDice и rollDice бросают мне ошибки LNK 2019 при попытке построить мой проект. Я стараюсь избегать публикации большого количества кода, но сохраняю контекст неповрежденным, написав здесь подобную настройку. Я смоделировал функцию startGen аналогичным образом, который у меня есть для функций в моем проекте.Проблемы с объявлением функций в Исходных файлах на C++

Учитывая следующий код:

fGenProto.hpp

#ifndef GEN_PROTO_HPP 
#define GEN_PROTO_HPP 

// Some Code 
const int GENERATORS = 3; 

void startGen(bool[], int); 

#endif 

genFunct.cpp

#include "fGenProtos.hpp" 

void startGen(runState[], genQuantity) 
{ 
    for (int iGenID = 0; iGenID < genQuantity; iGenID++) 
    { 
     runState[iGenID] = true; 
    } 

} 

main.cpp

#include "fGenProtos.hpp" 

using std::cout; 
using std::endl; 

int main() 
{ 
    bool genState[GENERATORS] = { false, false, false }; 

    for (int iGenID = 0; iGenID < GENERATORS; iGenID++) 
    { 
     cout << "Generator #" << iGenID << " Status: "; 

     if (genState[iGenID]) 
      cout << "Online"; 

     else 
      cout << "Stopped"; 
    } 

    cout << "Starting Generators..." << endl; 
    startGen(genState, GENERATORS); 

    for (int iGenID = 0; iGenID < GENERATORS; iGenID++) 
    { 
     cout << "Generator #" << iGenID << " Status: "; 

     if (genState[iGenID]) 
      cout << "Online"; 

     else 
      cout << "Stopped"; 
    } 
} 

В чем проблема? И если код выше идеален, я мог бы также изменить этот вопрос или задать новый вопрос со ссылками на полный код; Я озадачен в последний день или около того на это ...

ответ

2

Этот код

void startGen(runState[], genQuantity) 
{ 
    for (int iGenID = 0; iGenID < genQuantity; iGenID++) 
    { 
     runState[iGenID] = true; 
    } 

} 

является недействительным. Вы должны указывать типы параметров так же, как это сделано в объявлении функции.

void startGen(bool runState[], int genQuantity) 
{ 
    for (int iGenID = 0; iGenID < genQuantity; iGenID++) 
    { 
     runState[iGenID] = true; 
    } 

} 
+0

Я смотрел в своем источнике, и у меня были одинаковые параметры для обоих, однако я не делал этого для примера выше. –

Смежные вопросы