未定义的函数引用

时间:2013-03-30 00:26:15

标签: arrays function reference undefined structure

嗨,这是我第一次在这里发帖,而且我对编码比较新,所以我遇到了很多问题。大部分时间我都可以自己学习如何修复错误,但现在我想我只是遇到了一个带有数组和结构的主要障碍。目前,编译时会给我

undefined reference to `buildArrays(std::string, int, int, int)'

问题是,每次我尝试修复"我都会遇到此错误。 main函数中的buildArray调用者,将字符串PlaName更改为结构中的char PlaName [25]播放器以某种方式工作,但不会更改错误。无论如何,我可以尝试更改代码,以便数组可能从一个函数调用到另一个函数?我查找过这个错误的大部分信息主要是关于链接器,它没有帮助。

顺便说一句,我的作业要求我从文件中创建一个数组,从函数中调用它,在main函数中使用该数组,然后在主函数中使用该数组。我不知道程序是否有效,因为我无法通过未定义的引用错误。这里的大部分程序都是:

using namespace std;

struct Players
{
    string PlaName;
    int PlaGoal;
    int PlaAssist;
    int Points;
};

int buildArrays( string, int, int, int);
void printArrays( string, int, int, int, int);
void sortArrays( string, int, int, int, int);

int main()
{
Players player;

   buildArrays(player.PlaName,player.PlaGoal,player.PlaAssist,player.Points); //this is the error

  cout<<"Chicago Blackhawks UNSORTED Report;";


}

int buildArrays( string playerNames[], int goals[], int assists[], int rating[] ) //this function's format is required for the homework
{
    ifstream inFile;

    inFile.open("hockey.txt");
    if (inFile.fail())
        {
        cout<<"The hockey.txt input file did not open";
        exit(-1);
        }

    while (inFile)
        for(int i = 0; i <= 25; i++)
        {
        inFile >> playerNames[i]
               >> goals[i]
               >> assists[i]
               >> rating[i];
        cout<<playerNames[i]<<goals[i]<<assists[i]<<rating[i];
        }
        inFile.close();
        return 0;
}

1 个答案:

答案 0 :(得分:0)

问题似乎是你的buildArrays函数原型与你的函数定义不匹配。您的函数接受数组,但您的原型不使用数组语法。 将原型更改为:

buildArrays( string[], int[], int[], int[] ) ;

你的main()函数也需要将数组传递给buildArrays()函数。创建单个结构并传递每个成员是不够的。如果您必须使用buildArrays()函数格式来完成作业,则可能需要重新组织数据的组织方式。也许为每个玩家数据创建单独的数组,然后在调用buildArrays()之后创建一个结构数组。