syntax problem: was bedeutet "&" in folgendem zusammenhang:



  • hi,

    hab grad mit operator- überladungen rumgespielt. geht auch gut, aber ich versteh die syntax von folgendem nicht (richtig):

    Type& Class::operator+ (Type &operand){
     //usw.. mach plus und so...
    }
    

    ich greife auf "operand" direkt zu (kein pointer). und gebe auch "Type" als instanz zurück.
    ich benutze "&" und "*" eigentlich recht selbsicher. danach würde es hier heissen:
    "operand" ist komplett als "copy by value" übergeben worden.. das wäre er aber auch ohne "&" oder?! 😕
    könnte ich das nicht "theoretisch" weglassen?



  • Befasse dich mal mit Referenzen 🙂



  • hmm.
    das ist ziemlich grob umrissen 🙄
    ich arbeite mit referenzen jeden tag.. aber man kennt nie alles 🙂
    kannste nich etwas genauer "andeuten"? (ich lese ja auch selbst nach wenn ich nen anhaltspunkt hab...)



  • PointerKid schrieb:

    das ist ziemlich grob umrissen 🙄

    Nö, eigentlich schon recht präzise. Referenzen sind ein grundlegendes Sprachmittel von C++, meistens eigene Kapitel in einschlägigen Büchern.

    ich arbeite mit referenzen jeden tag..

    Das glaube ich nicht, dann hättest du ja erkennen müssen, dass operand eine Referenz auf einen Type ist.



  • int a =5;
    int *pa = &a; // pointer, & ist addressoperator
    int &ra = a // dies ist eine Referenz, & ist bei einer variablendekleration also das Zeichen für Referenz.
    


  • thx devil81.
    das wars was ich wissen wollte!
    @ bashar: */&§$()/&§(%"/§&



  • PointerKid schrieb:

    thx devil81.
    das wars was ich wissen wollte!
    @ bashar: */&§$()/&§(%"/§&

    Man hätte auch suchen können oder in die FAQ schauen... 🙄

    Devil



  • Also Grundregel:Wenn ein Type vor dem & steht,ist es eine Reference steht kein Type davor ist es eine Adresse...Ist doch ganz einfach 😃



  • suchen kann man nur wenn man was hat wonach man sucht. ich hab grad (mit deiner antwort von oben) im netz gesucht und was schönes gefunden. ohne son "stoß" findet man nix.
    ich kenne nur C und da gibts nur pointer. deshalb war ich verwirrt.

    ich versteh ja wenn leute genervt sind von ewigem "was ist ein '*int'?" gefrage wenns überall steht. aber nicht immer ist das so einfach.
    man kann sich da auch schnell in was reinsteigern. 🙄



  • PointerKid schrieb:

    ich versteh ja wenn leute genervt sind von ewigem "was ist ein '*int'?" gefrage

    Was ist ein "*int"? 😕 😃



  • PointerKid schrieb:

    suchen kann man nur wenn man was hat wonach man sucht. ich hab grad (mit deiner antwort von oben) im netz gesucht und was schönes gefunden. ohne son "stoß" findet man nix.
    ich kenne nur C und da gibts nur pointer. deshalb war ich verwirrt.

    ich versteh ja wenn leute genervt sind von ewigem "was ist ein '*int'?" gefrage wenns überall steht. aber nicht immer ist das so einfach.
    man kann sich da auch schnell in was reinsteigern. 🙄

    Naja, der Knackpunkt bei dir war ja, dass du geschrieben hast, du wurdest "jeden Tag mit Referenzen" arbeiten. Dein gepostestes Konstrukt war ja nun nicht so komplex und das hättest du in der Tat sofort erkennen müssen. Und wenn du nur C kennst, wie kannst du dann mit Referenzen arbeiten? Ich will jetzt nicht jede Aussage auseinander nehmen, aber das passt alles nicht so recht zusammen. Aber nun kennst du ja die Lösung.



  • Abgesehen davon hat dir Bashar sofort das passende Stichwort genannt, hättest bloß nen x-beliebiges Anfängertut von der Seite hier nehmen müssen und dort das Kapitel Referenz durchlesen.


Log in to reply