|
|||||||
|
|
|
![]() |
|
|
Strumenti |
|
|
#1 |
|
Junior Member
Iscritto dal: Feb 2008
Messaggi: 26
|
[C++] Creare array di oggetti usando puntatori
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 Codice:
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! Grazie in anticipo! |
|
|
|
|
|
#2 | |
|
Senior Member
Iscritto dal: Apr 2010
Città: Frosinone
Messaggi: 416
|
http://www.cplusplus.com/reference/s...r%20new%5B%5D/
Quote:
|
|
|
|
|
|
|
#3 |
|
Junior Member
Iscritto dal: Feb 2008
Messaggi: 26
|
Fammi capire, quindi quando uso new il compilatore cerca per prima cosa di creare una lista di complex, usando però non il costruttore che ho creato io (che ha la sintassi complex(double,double) ) ma un ipotetico costruttore senza argomenti complex()?
Porca miseria, questa cosa non la sapevo ...sapreste mica dirmi allora come ci si regola in questi casi?EDIT: OK, credo di aver risolto, ho semplicemente creato un costruttore complex() che....beh, che non fa proprio niente! Non so se sia "elegante" o generalmente usata come soluzione, ma se non altro ora compila e fa quello che voglio....quindi, consiglio generale a quelli di voi che sono più pratici di programamzione. Per prevenire problemi del genere, è sempre opportuno includere un costruttore "vuoto" quando si crea una classe? Ultima modifica di Lews Therin Telamon : 23-09-2010 alle 16:39. |
|
|
|
|
| Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 09:51.











...sapreste mica dirmi allora come ci si regola in questi casi?








