Funktionzeiger auf Funktionszeiger



  • Also ich suche etwas Hilfe, irgendwie komm ich net mehr recht klar, wann ich welche Argumente übergeben muss. Ich poste mal ein bißchen Code um vielleicht verständlicher zu machen ...

    class RSOCKET
    {  private:
        int tcp_port;
        ...
        int (*func) (sockaddr_in cl_adr,char* iobuffer);
       public:
        RSOCKET();                  // Konstrukor
       ~RSOCKET();                  // Destruktor
    int  init(int (*_func) (sockaddr_in cl_adr,char* iobuffer));// Schnittstelle
    }
    ...
    int RSOCKET::init(int (*_func) (sockaddr_in cl_adr,char* iobuffer))
    {  (*func) = (*_func);          // <--- genau da liegt das Problem
       ...
       return 0; 
    }
    

    Über diese Initlatisierung soll das Klasse eine Funktion (aus einer anderen Klasse) zugewiesen werden.
    Mach ich es so, wirft der Compiler mir eine Warnung aus (C4550), das ihm die Argumente Fehler. Versuche ich im Argumente zu geben, meckert er mich an, das die Verwendung ungültig ist 😕



  • oh das war ja scheußlich geschrieben. Ich sollte für heute lieber aufhören .. 😮 🤡
    ...

    Über diese Initialisierung soll der Klasse eine Funktion (aus einer anderen Klasse) zugewiesen werden.
    Mach ich es so, wirft der Compiler mir eine Warnung aus (C4550), das ihm die Argumente fehlen. Versuche ich ihm Argumente zu geben, meckert er mich an, das die Verwendung ungültig ist

    ....



  • lass die * weg, oder willst du die pointer da schon dereferenzieren?

    btw wir sind in ANSI C. hier gibts keine klassen.
    funktionspointer gehören aber noch hier rein.



  • DANKE !!
    Manchmal sind die Dinge wohl irgendwie viel zu kompliziert 🤡


Anmelden zum Antworten