香港专业教育学院得到这些错误信息:



而且我不知道发生了什么,我想知道我是否错过了什么?
我是新来的,它没有给我任何行号,所以我不确定给你什么代码,所以我给你这部分

#include <fstream>
#include <iostream>
using namespace std;
#include "ArrayIntStorage.h"

int main(int argc, char **argv) {

ifstream fin1("ACW2_data.txt");
ofstream out1("1-arrayUnsortedRead.txt");
ofstream out2("2-arrayUnsortedRead-thenSTDSort.txt");

if(!fin1.is_open())
{
    cout << "FAIL" << endl;
    return 1;
}

ArrayIntStorage arrayStorage1;
arrayStorage1.setReadSort(false);   // do not read sort

// read in int values into data structure
fin1 >> arrayStorage1;

// output int values in data structure to file
out1 << arrayStorage1;

// sort data structure using std
arrayStorage1.sortStd();

// output int values in data structure to file
out2 << arrayStorage1;

fin1.close();
out1.close();
out2.close();

最佳答案

您的链接器(编译器的一部分)无法找到ArrayIntStorage::sortOwn()的定义位置。

通常会发生以下两种情况:

  • ArrayIntStorage::sortOwn()的定义在另一个.c文件中,您忘记了告诉编译器(因此没有被编译)
  • ArrayIntStorage是仅 header 的库(因此没有其他.c文件),在这种情况下,您可能忘记了实现sortOwn()函数,而仅对其进行了声明。
  • ArrayIntStorage是一个尚未链接的外部库。 (如Tomalak Geretkal Notes所述,并按照paxdiablo列出的步骤解决)

  • 如果它们都不是,或者您发现这些选项令人困惑,请发布头文件ArrayIntStorage.h和相应的.c文件(应该有一个)。

    10-06 01:56