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

    [C++] Passare il metodo di una classe ad una funzione

    Ho una funzione che si aspetta come parametro un riferimento ad un altra funzione ( per poterla eseguire a mo di listener )
    esempio:
    codice:
        void func ( void *(*fun)(void*) ) ;
    fin quando gli invio una normale funzione tipo:

    codice:
    void *test( void* )
    {
        ...
    }
    func(&test);
    tutto bene. Ma ho qualche difficolta a passargli un riferimento di un metodo di una classe istanziata con new: tipo Testclass t = new TestClass () ;
    Come potrei fare ?
    Chiamatemi sven se volete non ho voglia di fare una nuova email per una nuova registrazione xD
    Mac Future User , Ventilatore for PC Cooler user , - dry is coming -

  2. #2
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,465
    Prova con un metodo statico ...
    No MP tecnici (non rispondo nemmeno!), usa il forum.

  3. #3
    Mi serve che il metodo che passo possa accedere alle variabili modificate della classe istanziata, quindi mi sa che non servirebbe a molto il metodo statico :/

    edit: ho provato, il metodo statico se lo prende, ma come ho detto mi serve che possa accedere agli attirbuti della classe istanziata... potrei anche passargli la classe istanziata come parametro per fargli prendere gli attributi, ma non so, non mi piace tanto come soluzione.. anche perchè non potrei accedere ai metodi privati
    Chiamatemi sven se volete non ho voglia di fare una nuova email per una nuova registrazione xD
    Mac Future User , Ventilatore for PC Cooler user , - dry is coming -

  4. #4
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,465
    Originariamente inviato da bonaprogram
    Mi serve che ... ho provato, il metodo statico se lo prende ...
    Mi sa che e' il modo giusto ...

    anche perchè non potrei accedere ai metodi privati
    Ed e' giusto che una funzione che non e' un membro della classe non ci acceda direttamente. Crea dei metodi per accedere a tali membri.
    No MP tecnici (non rispondo nemmeno!), usa il forum.

  5. #5
    Non hai tutti i torti ... farò così
    Chiamatemi sven se volete non ho voglia di fare una nuova email per una nuova registrazione xD
    Mac Future User , Ventilatore for PC Cooler user , - dry is coming -

  6. #6
    Ummm, ho usato il metodo statico e passato come parametro la classe istanziata. Avendo un attributo privato che è "int _portno" ho fatto un metodo pubblico per restituirmelo "int getPortNo()".
    A richiamarlo lo richiama senza problemi, ma se gli faccio returnarnare un valore manuale ( ad esempio return 12; ) dall'altra parte lo riceve senza problemi, ma se faccio returnare _portno ( return _portno ; ) non restituisce il numero giusto.
    In questo caso 9090 restituisce 12416. Ho provato a printarlo per vedere se il valore è corretto e, effettivamente dall'interno della classe, il valore è giusto.
    Chiamatemi sven se volete non ho voglia di fare una nuova email per una nuova registrazione xD
    Mac Future User , Ventilatore for PC Cooler user , - dry is coming -

  7. #7
    Ho visto che da questo problema solo se gli passo la classe per riferimento, se la mando normalmente non da problemi. Perchè ?
    Chiamatemi sven se volete non ho voglia di fare una nuova email per una nuova registrazione xD
    Mac Future User , Ventilatore for PC Cooler user , - dry is coming -

  8. #8
    Utente di HTML.it L'avatar di shodan
    Registrato dal
    Jun 2001
    Messaggi
    2,381
    Mostra il codice.
    This code and information is provided "as is" without warranty of any kind, either expressed
    or implied, including but not limited to the implied warranties of merchantability and/or
    fitness for a particular purpose.

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.