Kann ich Elementfunktionen überladen,die sich nur durch einen Aufzälungstyp in den Parametern unterscheiden ?[gelöst]



  • Hallo,
    Ich habe eine Klasse mit 2 Methoden, deren Parameter sich nur durch unterschiedliche Aufzählungstypen (enum) unterscheiden.

    enum Tcm_command
    {
    cmd_stop, //switch to etablished state
    cmd_listen, //switch to listening state
    cmd_disconnect ,//close the connection,the connection is disconnected
    cmd_connect,//connects to remote host
    cmd_req_reg,//reqire registration
    cmd_destroy, //destroys the Tconnection-object
    
    };
    
    Q_DECLARE_METATYPE(Tcm_command);
    
    enum Tcm_server_interface_command
    {
        cmd_stop_listening,//switch to etablished state
        cmd_listen_at,//orders a serverinterface to an ip-address
        cmd_reconfig_server_interface //reconfigures the server interface via Tserver_interface_info
    
    };
    
    Q_DECLARE_METATYPE(Tcm_server_interface_command);
    

    Die Methoden:

    bool command(Tcm_command,QVariant,QString);
    bool command(Tcm_server_interface_command,QVariant,QString);
    

    Kann man diese Methoden einfach überladen ?
    Oder gibt es nicht vorhersehbare Probleme ?

    Der Compiler (gcc) übersetzt es anstandslos.
    Der Editor von Qt-Creator verweist mich beim "Wechseln zur Deklaration" grundsätlich an die zuerst deklarierte Methode.

    Vielen Dank für eure Antworten.

    /edit pumuckl: cpp-Tags



  • Bronski schrieb:

    Kann man diese Methoden einfach überladen ?

    Die beiden Enums sind unterschiedliche Typen -> Überladen geht.

    Der Editor von Qt-Creator verweist mich beim "Wechseln zur Deklaration" grundsätlich an die zuerst deklarierte Methode.

    Dann hat der Qt-Creator da wohl ein Problem. (Und du wauch weil du ein fehlerhaftes Tool benutzt 😉 )



  • Vielen Dank, für die schnelle Antwort.
    Ich hatte schon befürchtet, dass er(der Compiler) die beiden Aufzählungstypen intern in integer umwandelt und dann durcheinander kommt.

    Mfg
    Bronski


Anmelden zum Antworten