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

    [C++] richiamare metodi pubblici del chiamante

    Ho un problema che penso sia di approccio (piu' che una soluzione mi aspetto un metodo alternativo di orgaizzare il lavoro).

    codice:
    class pippo {
    
    public:
        pippo();
        void somma();
    
        int val;
    };
    
    class seconda {
    
    public:
        seconda(pippo* parent);
    
    };
    
    pippo::pippo()
    {
        val = 0;
        seconda* lasec = new seconda(this);
    }
    
    void pippo::somma()
    {
        val = 5;
    }
    
    seconda::seconda(pippo* parent)
    {
        parent->somma();
    }
    
    int main()
    {
        pippo* inizio = new pippo();
        printf( "%d", inizio->val );
    }
    se il codice sta in un file unico tutto ok (ho ricomposto il codice al volo senza averlo riprovato, ma dovrebbe essere a posto).

    Se come mi aspetto di fare per un progetto piu' grosso (il problema mi si e' posto su un lavoro con wxWidgets) "spezzo" il codice in
    pippo.h con la definizione della classe pippo
    pippo.cpp con l'implementazione della classe pippo
    secondo.h con la definizione della classe secondo
    secondo.cpp con l'implementazione della classe secondo
    main.cpp con la funzione main non posso accedere ai metodi (pubblici) dell'oggetto passato in quanto non definiti. Non posso nemmeno includere i file .h in quanto avrei delle doppie definizioni.

    A dirla tutta non mi sembra nemmeno un approccio così pulito il passaggio del puntatore a oggetto, ma il problema mi si e' posto sviluppando con wx un prototipo di procedura di fatturazione in un frame unico:

    il codice del frame principale (e unico), tra le altre cose dovrebbe definire il metodo per uscire dal programma. A quel punto istanzierei una classe wxPanel che presenta un menu a bottoni e alla pressione del pulsante bQuit dovrebbe richiamare il metodo della classe chiamante.

    Cosa sto sbagliando?

    Grazie 1000 a chi avrà la pazienza..

  2. #2
    Utente di HTML.it L'avatar di anx721
    Registrato dal
    Apr 2003
    Messaggi
    2,352
    per il problema degli include vedi questo post:

    http://forum.html.it/forum/showthrea...hreadid=701200

    per passaggio del puntatore a oggetto non ho capito bene cosa intendi, comqunque risolvi un problema per volta. Pe avere sugerimenti so come impostare le classi devi descrivere un po quello che vuoi fare e quale classi hai implementato.


  3. #3
    Originariamente inviato da anx721
    per il problema degli include vedi questo post:

    http://forum.html.it/forum/showthrea...hreadid=701200

    per passaggio del puntatore a oggetto non ho capito bene cosa intendi, comqunque risolvi un problema per volta. Pe avere sugerimenti so come impostare le classi devi descrivere un po quello che vuoi fare e quale classi hai implementato.

    thx, avevo letto qualcosa e mi sembrava di avere abbozzato qualcosa di simile senza risultati. domani lo provo in maniera un po' + scientifica sull'esempietto e ti sapro' dire..

    per passaggio del puntatore a oggetto, comunque intendevo questo:

    quando A istanzia B io faccio in modo che il costruttore di B riceva un puntatore ad A per accedere ai suoi metodi pubblici (e nella prima versione dell'esempietto mi sembrava funzionare).. Anche questa mi sembra un po' una porcheria, ma non mi viene in mente nulla..

  4. #4
    Utente di HTML.it L'avatar di anx721
    Registrato dal
    Apr 2003
    Messaggi
    2,352
    Originariamente inviato da nglrossi
    Anche questa mi sembra un po' una porcheria

    non necessariamente...se l'ogetto B deve essere creato da A e deve poterne invocare i metodi va bene passare un riferimnto ad A tra gli argomenti del costruttore di B.

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.