Reference Variante in c++ mit Zeigern



  • in c mach ich einen Swap mit Call by reference so ->
    Funktionsaufruf: swap(&a,&b)
    Funktion: swap(*a,*b)

    in c++ mach ich einen Swap mit der Refernz-Variante so ->
    Funktionsaufruf: swap(a,b)
    Funktion: swap(&a,&b)

    die beiden varianten sind ja gleich

    nun meine Frage wenn ich in c einen Zeiger (doppelte Indirektion) übergeben will mach ich das so:
    funktion(&pHead)
    void funktion(**pHead)

    wie mach ich das obengenannte aber in c++ ?
    laut swapvariante müsste es so gehen oder?
    funktion(pHead)
    void funktion(&&pHead) ?????????

    nun meine Frage geht das so überhaupt ?? && ist ja ein logischer Operator geht das viell. mit entsprechender Klammerung???

    thx downset



  • Hallo,
    Referenzen auf Refernzen sind in C++ nicht möglich. Macht auch keinen Sinn. Wenn du einen Zeiger per Referenz übergeben willst, dann machst du genau das:

    void func(int*& p);
    
    // Aufruf
    int* p;
    func(p);
    

    Mit Zeigern:

    void func(int** p);
    // Aufruf
    int* p;
    func(&p);
    

Anmelden zum Antworten