Eine Funktion vom Typ einer Klasse



  • Ich beschäftige mich gerade mit dem Themenbereich "Klassen und Objekte".
    Wenn ich beispielsweise ein Objekt vom Typ meiner Klasse erstelle ,dann hat dieses Objekt alle Eigenschaften dieser Klasse:

    class beispiel
    {
    public:
    int zahl;
    string wort;

    };

    beispiel objekt;

    aber was ich nicht verstehe ist ,wenn man -eine ganze funktion vom typ einer klasse erstellt.- Was macht diese Funktion anders? Ich habe da noch nicht ganz hintergeblickt und würde mich über eine Erklärung freuen:)

    Ich hab gelesen ,probiert und experimentiert, aber ein Mensch kann mir das halt am besten erklären als ein Buch oder eine Internetseite,also nochmals danke an die die sich die Mühe machen 👍



  • Du meinst den Unterschied zwischen

    beispiel objekt;
    

    und

    beispiel create();
    

    ?
    Das ist derselbe Unterschied wie bei anderen Datentypen (z.B. int) auch.
    Ersteres erstellt eine Objekt (hier wird dabei der sog. "default construktor" aufgerufen) und zweitere gibt eine Funktion an, welche ein Objekt der entsprechenden Klasse zurückgibt.
    Beides zusammen benötigst du ja z.B. für

    beispiel objekt = create();
    

    bzw. in der Implementierung der Funktion mußt du ja irgendwie ein Objekt erzeugen, um es zurückgeben zu können.



  • Hallo,

    na? etwas vergessen? 😉

    class beispiel
    {
        public:
        int zahl;
        string wort;
    };
    
    beispiel objekt;
    

    Meinst du Funktionen, die ein Objekt als Rückgabewert liefern?
    sowas?:

    beispiel meineFunktion(int einParameter)
    {
        beispiel objekt;
        objekt.zahl = einParameter;
    
        return objekt; // liefert eine Kopie des Objekts zurück.
    }
    
    int main()
    {
        beispiel einObjekt;
        einObjekt = meineFunktion(123); // 'einObjekt' wird durch den Rückgabewert ersetzt.
        return 0;
    }
    


  • okay jetzt habe ich es endlich verstanden:D mir wurde das irgendwie nicht klar ,weil in dem buch das ich lese ,nicht richtig drauf eingegange wurde ,dass funktionen einer klasse ein objekt zurückliefern. Ich habe das anhand von Beispielen gesehen und kam da einfach nicht wirklich hinter...zu dumm.

    ich danke euch für eure antwort:)



  • Du wirst der einzige sein, der das Funktion einer Klasse nennt. Wenn dich andere nicht verstehen, liegt es daran 😉



  • Elementfunktionen wäre das richtige Wort oder?



  • ich würde sagen: "Methoden". In deinem Falle Objektmethoden.



  • ah okay,ja stimmt methoden habe ich auch gelesen.:)



  • SBond schrieb:

    ich würde sagen: "Methoden". In deinem Falle Objektmethoden.

    Nö, Methoden sind Funktionen, die member einer Klasse sind. Funktionen, die nicht member einer Klasse sind, heißen Funktionen oder freie Funktionen. Objektmethoden sind doppelt gemoppelt, sowas wie ein Reinigunsgbesen oder Kochküche.



  • SBond schrieb:

    ich würde sagen: "Methoden". In deinem Falle Objektmethoden.

    Wie kommst du darauf?

    Funktion - fertig aus



  • ja, mein Fehler. Ich dachte es ging um die Bezeichnung von Funktionen, die member einer Klasse sind.

    ...zu den Objektmethoden: ist das wirklich doppelt gemoppelt? Ich meine es gibt auch noch die Bezeichnung Klassenmethoden, die im Gegensatz zu Objektmethoden statisch sind. ...kann aber auch sein, dass ich hier gerade irgendwas verdrehe.


Anmelden zum Antworten