Wie kann ich einen Zeiger ( Object *ob
) an eine Funktion übergeben, die ein Prototyp ist void foo(Object &)
?
Wie kann ich einen Zeiger ( Object *ob
) an eine Funktion übergeben, die ein Prototyp ist void foo(Object &)
?
Antworten:
Nennen Sie es so:
foo(*ob);
Beachten Sie, dass hier kein Casting stattfindet, wie in Ihrem Fragentitel vorgeschlagen. Wir haben lediglich den Zeiger auf das Objekt de-referenziert, das wir dann an die Funktion übergeben.
ob
Zeigers oder konvertiert er nur (falls nicht umgewandelt) in eine Referenz? Was passiert , wenn ob
war nullptr
?
foo(*ob);
Sie müssen es nicht umwandeln, da es sich um denselben Objekttyp handelt. Sie müssen es nur dereferenzieren.