classe (objekt) als typ



  • Also wenn eine klasse als parameter übergeben wird ist der wert des rückgegebenen wertes ein objekt .
    Eine Klasse gibt einen Objekt wieder , aber wenn im return befehl eine zahl zurückgegebn wird , was ist dann mit dem objekt .
    Wird die zahl eine art parameter für das objekt oder wie kann ich dass verstehen .
    Danke CSOLL im voraus



  • Hi CSTOLL , ich weiss es gehört nicht hie hin , kannst du mir deine mail geben damit ich dich in meine MSN KOntakte , hintue damit wir mal über MSN MEssenger chatan könne und zwar über C++ , damit du mir ein paar sahen erklären kannst .
    Danke im voraus Lightning



  • Kann mir jemand auf meine frage antworten bitte



  • Lightning* schrieb:

    Also wenn eine klasse als parameter übergeben wird ist der wert des rückgegebenen wertes ein objekt .

    Am besten du siehst auch die Internentypen wie int und char als Objekte, zu mindestens mir erleichtert es dann das Verstehen.

    Eine Klasse gibt einen Objekt wieder , aber wenn im return befehl eine zahl zurückgegebn wird , was ist dann mit dem objekt .

    Welchen Objekt?

    Also ich versuch mal das zu erklären (versuche!!):

    Wenn du alles als ein Objekt ansiehst, dann ist also auch int ein Objekt.
    Ein Objekt wird meistens mit einem Wert initialisiert, bei int, ist dies auch ein int. Wenn du in deinem Code Zahlen schreibst, dann ist das auch ein Objekt.

    int a = 123; // initialisiert das int-Objekt a mit dem int-Objekt mit dem Wert 123
    

    123 könntest du als ein Namensloses-Objekt ansehen, welches natürlich auch irgentwo im Speicher liegt.

    Sicherlich kennst du auch schon die float und double "Objekte". Die sehen in deinem Code so aus:

    1.0 // double objekt
    1.0f // float Objekt
    

    Diese Objekte initialisert du dann so:

    float b = 1234.56f;
    double c = 1234.56;
    

    Was passiert jetzt wenn du folgendes machst:

    float d = 123;
    

    Da es auch einen Konstroktor von dem float-Objekt gibt, der int-Objekte annimmt, geht das. Jetzt macht du eine Funktion:

    double bla(float a)
    {
    return a;
    }
    

    die rufst du auf mit:

    int k = bla(123);
    

    Nun wird der konstruktor von dem float objekt a aufgerufen und als parameter wird das int-objekt 123 übergeben. dann wird, da der rückgabe wert double und nicht float ist, der Konstruktor eines double-Objektes aufgerufen mit dem float-Objekt a als parameter. Und dann wird der konstruktor des int-objektes k mit einem double parameter aufgerufen.

    arg, das war irgentwie bestimmt falsch und kompliziert. was soll's...

    mfg.



  • Das mit den funktionen verstehe ich ja , danke noch mals um deine bemühungen. Das mit den objekten war eine gut idee und eine gute erklärung , doch mein haupt problem liegt da rin dass ich nicht weiss was bei einem typ der eine klasse ist , als rückgabewert erscheint . Bei einem int ist es eineZahl , bei einem char ist es ein buchstabe doch bei einer klasse sollte es ein objekt sein .
    Aber :
    in einer funktion die so geht :

    class complex { 
       private: 
         float real, imag; 
       public: 
         complex(float r=0; float i=0; ) { real=r; imag=i; }; 
         float getReal() { return real; }; 
         float getImag() { return imag; }; 
         void setReal(float r) { real=r; }; 
         void setImag(float i) { imag=i; }; 
         complex produkt(complex f);
    

    die letzte reihe interessiert mich also

    complex produkt(complex f);
    

    was macht sie genau : und sagen wir mal sie gibt etwas aus , was wäre dies ???
    Danjke im voraus

    Lightning



  • Lightning* schrieb:

    was macht sie genau : und sagen wir mal sie gibt etwas aus , was wäre dies ???

    Die Funktion gibt eine eine neue Instanz der Klasse complex zurück. Das kommt jetzt auch noch auf die Definition der FUnktion an.

    Wie du das mit dem ausgeben meinst versteh ich noch nicht ganz. Z.B. kann int ja auch nichts ausgeben. Es gibt halt nur Streams wie cout die ein int-Objekt annehmen können.

    mfg.



  • Was meinst du mit Instanz einer klasse



  • Lightning* schrieb:

    Was meinst du mit Instanz einer klasse

    meineklasse bla; <- bla ist die Instanz
    meineklasse bla2; <- bla2 ist die gleiche klasse aber eine neue instanz

    mfg.



  • Also eine Instanz , in diesem Fall ein objekt



  • Lightning* schrieb:

    Hi CSTOLL , ich weiss es gehört nicht hie hin , kannst du mir deine mail geben damit ich dich in meine MSN KOntakte , hintue damit wir mal über MSN MEssenger chatan könne und zwar über C++ , damit du mir ein paar sahen erklären kannst .

    Nein, kann ich nicht - und will ich nicht 😉 Wenn du Fragen zu C++ hast, bist du hier besser aufgehoben.



  • Ok , kein problem , nett von dir dass du wieder vorbeischaust .



  • Ja, das mache ich sowieso (allerdings gibt es da eine Erfindung namens "Wochenende", die mich mitunter etwas aufhält).


Anmelden zum Antworten