Lews Therin Telamon
23-09-2010, 16:16
Ciao ragazzi, sono 2-3 mesi che non programmavo in C++, e ora mi sono imbarcato in un progettino, ma mi sono bloccato su una cosa che dovrebbe essere una scemenza, ma che non mi funziona.
Praticamente, diciamo che io ho creato una classe, per esempio una classe che rappresenta i numeri complessi, e vorrei creare un array di questi oggetti usando il comando new. Dando per scontato che ho incluso i file necessari al funzionamento della classe complex creata da me, quello che faccio è questo
int dim;
cout << "Quanti numeri complessi si desidera creare? ";
cin >> dim;
complex * p = new complex [dim];
for (int i=0; i<dim; i++)
{
p[i] = complex (i,i);
cout << "Numero " << p[i] << endl;
}
quindi, faccio inserire all'utente la dimensione dell'array (l'intero dim), creo un puntatore a oggetti di tipo complex che si chiama p, e provo ad "attaccarci" appunto un vettore di complex di dimensione pari a dim usando new. Il compilatore però mi dà quest'errore
no matching function for call to `complex::complex()'
candidates are: complex::complex(const complex&)
complex::complex(double, double)
alla riga dell'istruzione
complex * p = new complex [dim]
insomma, mi pare di capire che fraintenda l'istruzione new complex [dim], ma non capisco dove sbaglio!:confused:
Grazie in anticipo!
Praticamente, diciamo che io ho creato una classe, per esempio una classe che rappresenta i numeri complessi, e vorrei creare un array di questi oggetti usando il comando new. Dando per scontato che ho incluso i file necessari al funzionamento della classe complex creata da me, quello che faccio è questo
int dim;
cout << "Quanti numeri complessi si desidera creare? ";
cin >> dim;
complex * p = new complex [dim];
for (int i=0; i<dim; i++)
{
p[i] = complex (i,i);
cout << "Numero " << p[i] << endl;
}
quindi, faccio inserire all'utente la dimensione dell'array (l'intero dim), creo un puntatore a oggetti di tipo complex che si chiama p, e provo ad "attaccarci" appunto un vettore di complex di dimensione pari a dim usando new. Il compilatore però mi dà quest'errore
no matching function for call to `complex::complex()'
candidates are: complex::complex(const complex&)
complex::complex(double, double)
alla riga dell'istruzione
complex * p = new complex [dim]
insomma, mi pare di capire che fraintenda l'istruzione new complex [dim], ma non capisco dove sbaglio!:confused:
Grazie in anticipo!