Vorbei an smart-Pointer by reference

Smart-Pointer sind in der Regel winzig, so dass als Wert übergeben werden, ist das kein problem, aber gibt es irgendwelche Probleme die übergabe von Referenzen auf Sie; oder vielmehr sind es bestimmte Fälle wo dies darf nicht getan werden?

Schreibe ich eine wrapper-Bibliothek und einige meiner Klassen wrap smart-pointer-Objekte in der zugrunde liegenden Bibliothek... meine Klassen sind nicht smart-Pointer, aber die APIs, die derzeit passieren smart-pointer-Objekte von Wert.

e.g aktuelle code:

void class::method(const AnimalPtr pAnimal) { ... }

wird

void class::method(const MyAnimal &animal){...}

wo MyAnimal ist meine neue wrapper-Klasse gekapselt AnimalPtr.

Gibt es keine Garantie die Wrapper-Klassen nicht an einem Tag wachsen über die Verpackung einer smart-pointer, also als Wert übergeben werden, macht mich nervös.

  • Im Allgemeinen speichern Verweise auf smart pointers ist nicht eine gute Idee, aber die übergabe einer Referenz, wenn Sie wissen, dass es nicht gespeichert werden ist in der Regel ok, siehe zum Beispiel diese Frage: stackoverflow.com/questions/179105/...
InformationsquelleAutor Mr. Boy | 2013-06-28
Schreibe einen Kommentar