Il set è:
- Codice:
void Vettore::setComponent(int i, double x)
{
assert((m_N>i) && "Error, index too large");
if(i<m_N)
m_v[i]=x;
else
{
cerr << "Error, index " << i << "length " << m_N << endl;
exit(1);
}
}
Ho modificato il codice, aggiungendo una referenza, e adesso il problema è diverso
nel linkaggio mi dice:
main.o:main.C:(.text+0xab): undefined reference to 'readDataFromFile(const char*, int, Vettore&)'
collect2.exe: error: ld returned 1 exit status
mingw32-make: *** [makefile:2: esercizio2.2] Error 1Non capisco come sistemarlo. I pezzi di codice che credo siano rilevanti sono questi:
- Codice:
MAIN
int ndata=atoi(argv[1]);
char* filename=argv[2];
Vettore v;
readDataFromFile(filename,ndata,v);
con la funzione readDataFromFile implementata così:
- Codice:
void readDataFromFile(const char *file, Vettore &v)
{
ifstream in(file);
if(!in)
{
cout << "Cannot open file" << endl;
exit(0);
}
else
{
for(int k=0; k<v.getSize(); k++)
{
double value;
in >> value;
v.setComponent(k, value);
if(in.eof())
{
cout << "End of file, exiting" << endl;
exit(0);
}
}
}
exit(0);
}