Ab wo ist die Grenze, dass man eine Struktur/Klasse als Referenz übergeben sollte?
-
Hallo,
ich stelle mir die Frage, ob ich in meinem Programm gewisse Strukuren/Klassen an Funktionen, in denen sie nicht geändert werden besser als Wert (by value) oder als Adresse (Zeiger, C), bzw. Referenz (C++) by reference übergeben sollte.Aus diesem Grunde wollte ich die Frage stellen: ab welcher Größe sizeof(mystruct) sollte ich dringend aus Performance-Gründen beginnen, es wo möglich als Referenz zu übergeben?
Mit herzlichem Dank im Voraus
Wolfgke
-
Ich würd halt mal sagen, du brauchst Referenzen dann,
- wenn dir das dein Profiler ausspuckt
- wenn du ein Objekt nicht slicen lassen willst
(Ich mag nichtssagende Antworten
)
-
Konstante Referenzen...?!
-
Naja, allgemein gilt:
builtins by value, alles andere per const reference
wenn du aber eine sehr kleine Klasse hast, kann es sinn machen sie by value zu übergeben (stimmt doch, oder?)
-
@ness:
Danke für diese Faustregel. Daran kann ich mich zumindest bis ich mehr Erfahrung in dieser Sache habe orientieren.
-
Naja, ich habe auch Klassen mit sizeof=4 und trivialem Kopierkonstruktor (Color z.B.)... bei Klassen muss man immer wissen, wie teuer das Kopieren ist. In dem Fall wäre ja sogar double eher ein Kandidat für const& als Color.