我有一个管理图书馆的程序。我有3节课。
1.- Class Biblioteca(Library)用动态数组管理书籍(数组名为m_biblio),每个位置都是一本书(标题......)
2.- Llibre(Book)管理每本书,包含一个动态数组(数组名为m_llibre),每本书的副本数量。
3.-类别范例(copie),包含atributte的getter和setter。
我在类库中有一个函数,它读取文件中的whats,并设置数组大小:
ifstream fitxer;
string titol, autor;
int maxllibres = 0;
int nExemplars=0;
int i = 0;
fitxer.open(nomFitxer);
if (fitxer.is_open())
{
fitxer >> maxllibres; //first line of txt reads an integer
setBiblioteca(maxllibres);
while (!fitxer.eof())
{
fitxer >> titol >> autor >> nExemplars;
m_biblio[i].setTitol(titol);
m_biblio[i].setAutor(autor);
m_biblio[i].setNExemplars(nExemplars);
i++;
}
}
fitxer.close();
此函数调用 setBiblioteca(maxllibres); 和 m_biblio [i] .setNExemplars(nExemplars); 来设置数组的大小。
setBiblioteca的功能如下:
{
m_maxllibres = Maxllibres;
m_biblio = new Llibre[m_maxllibres];
}
与setNExemplars相同。
在这种情况下,程序无法设置数组的大小。 VS输出是这个std :: bad_array_new_length。而且我不知道问题是什么。 如果你能帮到我,我将非常乐意解决这个问题。
Thaaanks!