Visualizzazione dei risultati da 1 a 2 su 2
  1. #1

    [C++] Problema a runtime

    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:
    codice:
    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:
    codice:
    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
    precipito

  2. #2
    Utente di HTML.it
    Registrato dal
    Dec 2002
    Messaggi
    173
    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

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2024 vBulletin Solutions, Inc. All rights reserved.