PDA

Visualizza la versione completa : [C++] Problema a runtime


Fede.xs
29-01-2003, 12:16
Sto sviluppando il progettino per l'esame di informatica2, l'obiettivo quello di mettere in piedi una specie di gioco funzionante da linea di comando per interagire con un ambiente composto da stanze e oggetti di vario tipo.
Sono arrivato a programmare il tipo Porta, derivato di Apribile e Passaggio, che a loro volta derivano dalla classe base Oggetti.
Nella classe Stanza istanzio un vector di oggetti Porta (vett_porte), per avere elenco porte disponibili e poter gestire il passaggio in un'altra stanza. Per popolare vett_porte ho la funzione membro ins_porte:


Stanza& Stanza::ins_porte(porta& p)
{ vett_porte.push_back(p);
return *this; }

Nel main istanzio un oggetto di tipo personaggio, una classe i cui membri privati sono la posizione dell'omino nella stanza e quale sia la stanza corrente. Le sue funzioni membro gestiscono gli input da tastiera (del genere vai a nord, guarda stanza ecc.). Quando istanzio personaggio passo per riferimento al costruttore la stanza di partenza, in questo caso st1.
Riassumendo, questo il main:


Stanza st1("corridoio iniziale","descr.breve st1","descr.lunga st1",70,20);
porta s1_p1(0,20,0,0,0,"nome","descrizione");
st1=st1.ins_porte(s1_p1);
Personaggio pers(st1);

Gli argomenti numerici di st1 indicano le dimensioni della stanza. Per quanto riguarda la porta s1_p1 "0,20" indica la posizione e "0,0,0" lo stato (aperta/chiusa ecc).

Veniamo al problema: a compiletime non vengono rilevati errori, che invece si verificano a runtime (msg: si verificato un errore in prog.exe. L'applicazione verr chiusa). Se elimino la chiamata alla funzione ins_porte il programma gira. Ma gira anche se provo ad eliminare l'istanza dell'oggetto di tipo Personaggio, cio esegue correttamente l'inserimento delle porte nel vector.
Potete aiutarmi?
Scusate per la lunghezza :)

eagle_fly
29-01-2003, 18:36
Scusa, ho capito in parte il tuo problema, se vuoi e puoi nn ke potresti specificare meglio il prob. e inserire qualke riga di codice in + x' x me il prob nn in quelle inserite, risulta pi a monte!

Prova!!

CIAO:ciauz:

Loading