Проблемы объявления функций в исходных файлах в C ++

0

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

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

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";
    }
}

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

Теги:
function
linker-errors

1 ответ

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
    Я посмотрел в своем источнике, и у меня были одинаковые параметры для обоих, однако я не сделал этого для примера выше.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню