operator() eines structs überladen



  • Ich weiß nicht was ich falsch mache.
    Ich habe ein Struct welche einen Klassenpointer und einen Methodenpointer dieser Klasse hat.
    Nun möchte ich den operator() überladen.

    typedef void (CDBBackupPage::*F)(void) ;
    
    // Hier haben wir unsere Struktur für den Thread
    // Wir geben eine Klasseninstanz und einen Funktionspointer mit.
    struct t_data {
    	t_data(CDBBackupPage* p, F f) 
    		: pPage(p), fPage(f) {}
    
    	CDBBackupPage* pPage;
    	F fPage;	
    
        void operator () {
            if(pPage && fPage)
                (pPage->*fPage)();
        }
    
    	void doit() {
    		if(pPage && fPage)
                (pPage->*fPage)();
    	}
    };
    

    Dann bekomme ich erst mal die Meldung (alles die Zeile der Funktionsdefinition), dass void nicht passt.

    error C2544: ')' fuer Operator '()' erwartet
    error C2144: Syntaxfehler : Fehlendes ';' vor Typ 'void'
    error C2182: '()' : Ungueltige Verwendung des Typs 'void'
    error C2059: Syntaxfehler : ')'
    error C2059: Syntaxfehler : '{'
    error C2334: Unerwartete(s) Token vor '{'; sichtbarer Funktionsrumpf wird übersprungen
    

    Was mache ich falsch. Den Typ auf bool umzuändern bringt auch nichts.



  • void operator ()()



  • Wie wäre es mit operator()()?



  • OMG



  • sieht aus wie titten



  • meinung schrieb:

    sieht aus wie titten

    Passt auch irgendwie
    void operator (.)(.)


Anmelden zum Antworten