pointer
-
@Tachyon: Mit C++11 braucht man dafür keine (direkten) Pointer mehr.
-
uniki schrieb:
@Tachyon: Mit C++11 braucht man dafür keine (direkten) Pointer mehr.
Was ändert das an meiner Aussage?
-
- Optionale Übergabeparameter bei Funktionen
-
frage1 schrieb:
Wozu sind die gut ?
Kompatibilität mit C
In C++ sind Referenzen und Smart Pointer zu bevorzugen.
Ansonsten siehe die Antworten meiner Vorredner
-
Wobei Referenzen an dem Konzept ja nichts (-wenig) ändern.
-
_matze schrieb:
call-by-reference
Kann man mit Pointern höchstens simulieren. Pointer sind ja auch call-by-value und in C++ hat man mit Referenzen ja echtes call-by-reference.
-
Ich benutz auch in C++11 nicht für alles Smartpointer. Ich finde normale Zeiger oft auch gut, wenn keine Objekterzeugung- oder destruktion stattfindet.
-
Eisflamme schrieb:
Ich benutz auch in C++11 nicht für alles Smartpointer. Ich finde normale Zeiger oft auch gut, wenn keine Objekterzeugung- oder destruktion stattfindet.
Du benutzt also rohe Zeiger für PODs...
Es ist wohl wenig sinnvoll einzelne PODs auf dem Heap anzulegen, weshalb man hierfür keine Zeiger braucht.
Für Arrays konstanter Größe braucht man in der Regel auch den Heap nicht zu belasten (Ausnahme extreme Größe des Arrays).
Und für dynamische Arrays kann man std::vector nutzen, was in der Regel sinnvoller ist, als sich selber eine solche Klasse zu implementieren.Also wofür genau benutzt du rohe Zeiger?
-
rüdiger schrieb:
_matze schrieb:
call-by-reference
Kann man mit Pointern höchstens simulieren. Pointer sind ja auch call-by-value und in C++ hat man mit Referenzen ja echtes call-by-reference.
Wieso ist das nicht Call-By-Reference? Das ist doch Referenz pur, wenn man eine Adresse übergibt

Und C++ Referenzen sind auch nichts anderes als pointer(die etwas anders aussehen)
-
DrakoXP schrieb:
Eisflamme schrieb:
Ich benutz auch in C++11 nicht für alles Smartpointer. Ich finde normale Zeiger oft auch gut, wenn keine Objekterzeugung- oder destruktion stattfindet.
Du benutzt also rohe Zeiger für PODs...
Gemeint sind vermutlich nicht-besitzende pointer.
Soley schrieb:
rüdiger schrieb:
_matze schrieb:
call-by-reference
Kann man mit Pointern höchstens simulieren. Pointer sind ja auch call-by-value und in C++ hat man mit Referenzen ja echtes call-by-reference.
Wieso ist das nicht Call-By-Reference? Das ist doch Referenz pur, wenn man eine Adresse übergibt

Und C++ Referenzen sind auch nichts anderes als pointer(die etwas anders aussehen)Die Adressen selbst werden aber per Kopie übergeben, also ist es genaugenommen call-by-value.
Das Referenzen intern nicht viel anderes als pointer sind, sollte klar sein.
-
Aber es gibt kein reines Call-by-Reference... Wenn man auf Assembler-Ebene runtergeht, dann werden auch nur Kopien der Werte auf den Stack geschoben und damit dann gearbeitet

-
Q hat Recht, war so nebenbei hingeschrieben. Ich meine Zeiger als Attribute einer Klasse, wobei die Objekterzeugung- und Destruktion nicht in selbiger Klasse erfolgt.