Mal &, mal *
-
Seikilos schrieb:
...
Bei Devils code müsste die Signatur ein int **arr nehmen, richtig?...Oder einfach ein int*& arr....
Dies ist eben ein Beispiel, wo das fachliche Objekt wirklich der Pointer ist - schließlich geht es hier um Speicherverwaltung (im Prinzip ist es sogar egal, auf welche Objekte hier gezeigt wird), weswegen ich das durchaus als "call-by-value" bezeichen würde.
Die C++-Syntax ist hier in dieser Richtung nicht eindeutig (bei Pointern) - anders herum aber schon:
"Signatur einer Funktion, die einen optionalen Verweis (call-by-reference) auf ein int entgegennimmt" :void f(int*);
"Signatur einer Funktion, die einen int-Pointer (call-by-value) entgegennimmt" :void f(int*);

Gruß,
Simon2.
-
Simon2 schrieb:
Die C++-Syntax ist hier in dieser Richtung nicht eindeutig (bei Pointern) - anders herum aber schon:
"Signatur einer Funktion, die einen optionalen Verweis (call-by-reference) auf ein int entgegennimmt" :void f(int*);
"Signatur einer Funktion, die einen int-Pointer (call-by-value) entgegennimmt" :void f(int*);

...ööh
-
Seikilos schrieb:
...
...ööhProbleme ?
so ist das eben mit "nicht-bijektiven Abbildungen": Zwei unterschiedliche Ausgangspunkte werden auf dasselbe Ergebnis abgebildet...
Aber tröste Dich: Es gibt auch eindeutige Zuordnungen:
"Signatur einer Funktion, die einen verpflichtenden Verweis (call-by-ref) auf ein int entgegennimmt: void f(int&);"
"Signatur einer Funktion, die ein int (call-by-val) entgegennimmt: void f(int);"Gruß,
Simon2.