2

我正在创建一个数组(或向量?)来表示一些文件。如何在C++中使用动态尺寸大小创建数组?

基本上,我将有一个可变数量的输入文件。每个文件的每一行都可以看作一个自定义对象(我将它们称为“符号”)。每个文件中有不同数量的行。

所以我想有打算对这种表示方法:

阵列[X] [Y]

其中x将参考文件,和y该文件中的行。

我看到计算器几个主题,沿着这些线路

symbol **snapShots = new symbol*[usableFiles]; 
for(int i = 0; i < usableFiles; ++i) { 
    snapShots[i] = new symbol[longestFile]; 
} 

这是给我一个奇怪的错误信息提示的东西时,建筑物:

Undefined symbols for architecture x86_64: 
    "symbol::symbol()", referenced from: 
     _main in MarketDataGenerator.o 
ld: symbol(s) not found for architecture x86_64 
collect2: ld returned 1 exit status 
Info: Parallel threads used: 3 

任何想法如何我会去做这个?或者,我会在将文件暂时存储在文件中之前暂时阅读以供进一步处理?

+3

该错误具体可能意味着您没有定义您的默认构造函数,或者没有链接到定义。无论如何,使用'std :: vector',而不是双指针。 – chris

+0

会包含一个未定义的析构函数吗?我很确定我的构造函数是可以的。 – user1890050

+1

它在抱怨错误中的构造函数。它需要一个链接器可以找到的主体。 – chris

回答

4

您是否考虑过使用std::vector<symbol>std::vector<std::vector<symbol> >?链接器试图告诉你的是,你已经为你的类symbol声明了一个默认的构造函数,但没有定义它(至少在你链接的文件中没有定义)。

+0

是的 - 缺少默认的构造函数。不知道我是如何忽视那一个的!不管怎样,谢谢! – user1890050

相关问题