Zugriffsoperator "->"



  • Hallo, kennt jemand von euch ein Tutorial, welches erklärt, wie man "->" einsetzt ?
    Ich hätte mich gerne selber auf die Suche gemacht, aber nach "->" zu suchen geht ziemlich schlecht 🙄



  • Wie wäre es wenn du eine Tutorial über Zeiger suchst?



  • imson schrieb:

    Hallo, kennt jemand von euch ein Tutorial, welches erklärt, wie man "->" einsetzt ?
    Ich hätte mich gerne selber auf die Suche gemacht, aber nach "->" zu suchen geht ziemlich schlecht 🙄

    einfach nur normales -> ist auf meinem genial veralteten c++-kurs zu feinen auf http://www.volkard.de/vcppkold/die_klasse_stackaslinkedlist.html
    erkläret.
    a->b ist einfach nur ne andere schreibweise für (*a).b

    wenn man selber den operator -> überlädt, gibt's noch etwas magisches. die benutung des op-> fürht dazu, daß der op-> verwendet wird und automatisch auch der op-> des ergebnisses und dessen ergebnisses, so lange, wie es geht.



  • volkard schrieb:

    imson schrieb:

    Hallo, kennt jemand von euch ein Tutorial, welches erklärt, wie man "->" einsetzt ?
    Ich hätte mich gerne selber auf die Suche gemacht, aber nach "->" zu suchen geht ziemlich schlecht 🙄

    einfach nur normales -> ist auf meinem genial veralteten c++-kurs zu feinen auf http://www.volkard.de/vcppkold/die_klasse_stackaslinkedlist.html
    erkläret.
    a->b ist einfach nur ne andere schreibweise für (*a).b

    wenn man selber den operator -> überlädt, gibt's noch etwas magisches. die benutung des op-> fürht dazu, daß der op-> verwendet wird und automatisch auch der op-> des ergebnisses und dessen ergebnisses, so lange, wie es geht.

    Du es scheint, als wüsste er noch nicht mal, was Zeiger sind. Und dann erzählst du ihm was vom Überladen von Operatoren 😉



  • volkard scheint ein nup verwirrer zu sein



  • ω schrieb:

    volkard scheint ein nup verwirrer zu sein

    nee, wenn das so kam, dann bitte ich den verwirrten nube um entschuldigung. ich verwirre nur gerne profis.

    hier dachte ich, daß das "wenn..." sauber trennt. wenn der nube nicht weiß, was es heißt, den op-> zu überladen, dann hat er es auch nicht gemacht und er ignoriert das. aber nach fragestellung war mir nicht klar, ob der freager an dem op-> für zeiger hakt oder am op-> mit magie. habe einfach beides beantwortete, aber die magie sehr kurz in erwartung einer nachfrage, falls es darum geht. ich mag es nicht, nur halbe lösungen zu geben und den nube in der sicherheit zu lassen, -> sei NUR das, was gesagt wurde, wenn es virel mehr ist.
    und nun knie nieder und sag vor aller ohren, daß volkard doch meistens ganz fair zu nubes ist.



  • ja volkard du bist der gott 😉



  • volkard und wenn du schon dabei bist, dann erklär doch bitte die Magie des "->" Operators 😉
    Von meiner Seite besteht Interesse an deiner Erklärung.

    GreetZ Xecutor



  • Xecutor schrieb:

    dann erklär doch bitte die Magie des "->" Operators 😉
    Von meiner Seite besteht Interesse an deiner Erklärung.

    äh, hab ich schon. wenn daran noch was unklar ist, mach's konkret. dann hab ich vergessen, wqs zu erläutern. aber es ist bisher vollständig und gut, soweit ich es ermessen kann.



  • volkard schrieb:

    aber es ist bisher vollständig und gut, soweit ich es ermessen kann.

    vollstaendig: ja
    gut: naja

    man muss wissen wie eine ueberladung des op-> aussieht um damit etwas anfangen zu koennen. dann muss man aber hoellisch nachdenken - am besten waere ein suesses kleines codebeispiel:

    struct A
    {
      int a;
    };
    
    struct B
    {
      A* operator->()
      {
        return new A();
      }
    };
    
    struct C
    {
      B operator->()
      {
        return B();
      }
    };
    
    int main()
    {
      C c;
      c->a=7;
    }
    

    ist c++ nicht so schoen klar und logisch...?



  • und was hat man nun davon? der code bringt doch nur, dass a der Struktur A == 7 ist, oder?

    da zuerst der op-> von C verwendet wird...
    der erzeugt ein neues Objekt von B und dessen op-> erzeugt ein Objekt von A und dem element a wird die 7 zugewiesen, da die Struktur A keinen op-> überladen hat, oder?

    aber:

    wozu brauch man das?
    was ist daran "magisch"?
    gibt es ein beispiel aus dem alltag, was man damit lösen kann?



  • Ich kann es mir so vorstellen, dass dann einfach mal mehr passiert als man dachte.



  • außerdem hast du dadurch ein speicherloch (new A) 😛



  • leech schrieb:

    was ist daran "magisch"?

    Es werden 3(!) op-> in dieser Zeile aufgerufen:
    c->a=7;

    das finde ich schon ein bisschen magisch. oder ist zumindest nicht dass, was ein naiver betrachter des codes annehmen wuerde


Anmelden zum Antworten