[C++] Strano problema con i puntatori

  • Pagina

    di 1

    precedente prossimo
  • demonbl@ck Moderatore 26 giu 2012 21:21:58 5,074 messaggi
    Visto 2 giorni fa
    Registrato 2 anni fa
    Partiamo col dire che gli strani problemi sono SEMPRE con i puntatori :uhlol:

    Allora, ho la classe Player, che ha come attributi i due oggetti statici GuiInventoryBar inventoryBar e GuiGrid inventory (anche altra roba ma mi interessa quello).

    Io li passo come puntatory alla classe inventoryWindow:
    new inventoryWindow(&player.inventory,&player.inventoryBar);
    Poi nel costruttore di inventoryWindow ci faccio il classico this->inventory=inventory e this->inventoryBar=inventoryBar.


    Tutto perfetto.

    Però, se invece di fare così passo al costruttore di inventoryWindow direttamente player, e nel costruttore faccio this->inventory = &play.inventory, finchè sono nel costruttore tutto sembra funzionare, ma ogni altra funzione di inventoryWindow che richiami this->inventory->draw() mi fa crashare di brutto il programma senza che io abbia la minima idea di cosa sia successo. :smugpalm:

    Ho provato a controllare e il puntatore inventory ha lo stesso valore quando è nel costruttore o quando lo usa l'altra funzione, quindi non è quello.


    Idee? :uhm:
  • demonbl@ck Moderatore 26 giu 2012 21:27:59 5,074 messaggi
    Visto 2 giorni fa
    Registrato 2 anni fa
    Ora che ci penso, dovrei specificare che draw() è virtuale pura ereditata dalla superclasse GuiObject, ma se il problema fosse quello dovrebbe uscirmi runtime error 6025 (già successo prima per un fail mio) :uhm:

    @ZioYuri78
  • PongoII 26 giu 2012 21:52:02 25,392 messaggi
    Visto 1 minuto fa
    Registrato 2 anni fa
    mavaffanculo, vah! :uhlol:

    ______________________________________________________
    The Polito form is dead, insect. Are you afraid? What is it you fear? The end of your trivial existence? When the history of my glory is written, your species shall only be a footnote to my magnificen

  • Utente cancellato 26 giugno 2012 22:02:04
    Come detto in chat fai così,
    inventoryWindow(Player &player) :sisi:

    Modificato da ZioYuri78 alle 22:08:29 26-06-2012
  • demonbl@ck Moderatore 26 giu 2012 22:06:14 5,074 messaggi
    Visto 2 giorni fa
    Registrato 2 anni fa
    Sì, così funziona, ma sta di fatto che doveva andare anche prima in teoria :uhlol:

    C++merda :smugrandom:
  • Utente cancellato 2 luglio 2012 12:13:40
    No, sta di fatto che hai delle convinzioni in base a quello che ti hanno insegnato all'itis e credi che la storia sia tutta lì, invece quando si comincia a tirare in ballo librerie grafiche e altro immancabilmente non funziona più niente :asd:

    Ma almeno funziona ancora, vero? :fag:

    Comunque solo da quel metodo l' sopra noto delle grosse carenze a livello progettuale :sisi:
  • demonbl@ck Moderatore 4 lug 2012 00:41:18 5,074 messaggi
    Visto 2 giorni fa
    Registrato 2 anni fa
    Si si tu mi piaci, noti carenze senza neanche aver la minima idea di cosa faccia quella funzione :smugciao:
  • Utente cancellato 4 luglio 2012 09:03:15
    Vah che ho un pelino di esperienza a programmare :asd:
  • demonbl@ck Moderatore 6 lug 2012 19:45:49 5,074 messaggi
    Visto 2 giorni fa
    Registrato 2 anni fa
    >>senza neanche aver la minima idea di cosa faccia quella funzione :smugciao:
  • Pagina

    di 1

    precedente prossimo
accedi per rispondere