Methode einer Klasse aufrufen ohne Instanzierung



  • Ich habe mir für die serielle Kommunikation eine Klasse geschrieben. Da ich häufig noch alle verfügbaren COM-Ports in meinen Forms auflisten möchte enthält die Klasse noch eine Methode, welche diese Funktion enthält.
    Da ich in einem Programm mehrere Geräte über die ser. Schnittstelle anspreche gibt es für jedes Gerät einen Thread in dem die Klasse instanziert wird. Jedes Gerät besitzt auch eine eigene Form in dem ich die oben genannte Funktion nutzen möchte. Kann ich in den Forms auf die Methode zugreifen ohne ein Objekt zu erstellen? Ich habe es bisher so gemacht, dass ich in jeder Form die Methode neu definiert habe.

    Edit:
    Ich meine mich zu erinnern, dass ich die Methode einfach als static deklariere und dann mit Klassenname::Methodenname(); darauf zugreifen kann. Kann/Darf man das so machen?



  • Hallo

    Ja, mit static kannst du eine Klassemethode ohne Instanz ansprechen. Ob das dir auch wirklich in deinem konkreten Beispiel weiterhilft, kann ich nicht sagen. Immerhin darfst du dann in der static-Methode auch nicht direkt auf die nicht-static Member der Klasse zugreifen.

    bis bald
    akari



  • Du kannst die Funktion auch auch als freie Funktion implementieren, damit hältst du das Klassendesign sauber.



  • DocShoe schrieb:

    Du kannst die Funktion auch auch als freie Funktion implementieren, damit hältst du das Klassendesign sauber.

    Also in eine eigene cpp/h-Datei? Oder wo deklarieren?



  • Hallo

    linopi schrieb:

    Also in eine eigene cpp/h-Datei? Oder wo deklarieren?

    Dort wo du es willst und brauchst. Wie jede andere Funktion auch.

    bis bald
    akari


Log in to reply