Du bist nicht angemeldet.

Stilllegung des Forums
Das Forum wurde am 05.06.2023 nach über 20 Jahren stillgelegt (weitere Informationen und ein kleiner Rückblick).
Registrierungen, Anmeldungen und Postings sind nicht mehr möglich. Öffentliche Inhalte sind weiterhin zugänglich.
Das Team von spieleprogrammierer.de bedankt sich bei der Community für die vielen schönen Jahre.
Wenn du eine deutschsprachige Spieleentwickler-Community suchst, schau doch mal im Discord und auf ZFX vorbei!

Werbeanzeige

H5::

Treue Seele

Beiträge: 368

Wohnort: Kiel

  • Private Nachricht senden

21

27.06.2014, 23:37

Leider kann ich nicht viel zu deinem eigentlichen Problem sagen, da fehlen einfach die nötigen Informationen. Ich glaube der Fehler würde sich am einfachsten finden lassen wenn du ein komplettes Beispiel bzw. deinen kompletten Quellcode zeigst.

Zur deiner Titelfrage:
Man kann einen Vector aus einer Klasse als Kopie, als Zeiger/Referenz (Konstant oder nicht) oder per Movesemantik beziehen.

Meiner Meinung nach würde ich, soweit es sich wirklich nicht Designtechnisch vermeiden lässt, nur die Kopie oder Movesemantik benutzen. Der Bezug der Referenz oder des Zeigers legt die eigentlich Datenstruktur deiner Klasse offen. solltest du einmal die Interne Struktur ändern wollen würde sich dies auch nach außen auswirken, etwas was man besser vermeiden sollte.

Sollte es sich absolut nicht vermeiden lassen so würde ich den Vektor (oder allgemein: alle grundlegenden Daten) wie schon gezeigt nur als konstante Referenz offenbaren. Sollten von außen Änderungen an einer Internen Struktur vorgenommen werden müssen liegt so gut wie immer ein Designfehler zugrunde.

Eventuell hilft dir ja sogar die suche nach einem Design bei dem du die Vektoren nicht offenlegen musst bei der Fehlerfindung. Ansonsten zeig einfach mal wie gesagt ein komplettes Codebeispiel.

C++11 und die Sache mit der Move-Semantik (Netter Blog wie ich finde.)
:love: := Go;