PDA

View Full Version : [c++] costruttori che non posso parametrizzare


xblitz
21-03-2008, 23:30
ciao a tutti
per scuola sto facendo una simulazione di scheduler round robin e per simulare le code di ready e wait ho una coda allocata dinamicamente formata da nodi che sono strutture. Quando vado ad allocare un nodo con l'operatore new ecco l'errore che mi da:


io scrivo:
nodo*p=new nodo;

no matching function for call to `nodo::nodo()'
candidates are: nodo::nodo(const nodo&)


e una cosa analoga me la fa quando alloco un'istanza di una classe (questa ha il solo costruttore di default). Io non so più a che santo votarmi e sono convinto che la cosa sia una sciocchezza del tipo manca un punto e virgola :rolleyes:. Qualcuno mi da una dritta su come risolvere questo problema pasquale
grazie :help:

wizard1993
21-03-2008, 23:37
ma se è un costruttore a una classe non dovrebbe essere inizializzato così?

classe *ptr=new classe();

xblitz
22-03-2008, 09:45
ciao e grazie
allora per quanto riguarda la classe, che è allocata staticamente il problema sembra apparentemente risolto, dico apparentemente perché una cosa così non esiste: per questa istanza ho fatto come mi hai detto te e il problema è scomparso, per altre 2 istanza di 2 classi differenti (per gli amici lo scheduler e il dispatcher) non importavano :mbe: :confused: per il nodo invece brancolo nel buio...

wizard1993
22-03-2008, 10:00
ciao e grazie
allora per quanto riguarda la classe, che è allocata staticamente il problema sembra apparentemente risolto, dico apparentemente perché una cosa così non esiste: per questa istanza ho fatto come mi hai detto te e il problema è scomparso, per altre 2 istanza di 2 classi differenti (per gli amici lo scheduler e il dispatcher) non importavano :mbe: :confused: per il nodo invece brancolo nel buio...

io di c++ ne so poco, e le allocazioni dinamiche della memoria le conosco pochissimo, ma sei sicuro ci non aver definito qualche costruttore sovrascitto?

xblitz
22-03-2008, 14:14
io di c++ ne so poco, e le allocazioni dinamiche della memoria le conosco pochissimo, ma sei sicuro ci non aver definito qualche costruttore sovrascitto?

cioè in che senso? credi che abbia qualche implementazione a giro senza la signature (o il contrario di quello che ho detto)? credo di no cmq controllo :muro:

edit: ho controllato ma niente tutto ok

wizard1993
22-03-2008, 14:24
cioè in che senso? credi che abbia qualche implementazione a giro senza la signature (o il contrario di quello che ho detto)? credo di no cmq controllo :muro:

l'idea è quella, mi sa tanto di costruttore di conversione implicità (rimasugli dei miei studi) per la copia dei dati, da un oggetto all'altro. di solito è definito implicitamente dal compilatore

xblitz
22-03-2008, 15:48
trovato l'errore!!!! :yeah:
le classi che cercavo di inizializzare erano classi composte e quindi dovevo inizializzare anche le sottoclassi (o strutture) e per farlo dovevo usare le liste di inizializzazione (mamma mia che :ciapet: che ho avuto: le ho studiate giusto ieri sera)

wizard1993
22-03-2008, 16:12
perfetto, allora abbiamo risolto