Objekt an Klasse übergeben und kopieren
-
Hallo,
ich habe schon wie blöd nachgelesen, aber scheinbar habe ich doch ein sehr spezielles Problem:
Prinzipiell geht es um das Kopieren eines Objektes
Mein Code soll in 3 Modis laufen, dafür habe ich drei Klassen erstellt
FS9Interface CameraINterface VideoInterface
Je nach dem welcher Modus aktiv ist, wird ein Objekt
acData
erstellt. Diese Objekt wird (in allen 3 Fallen) von einer Klasse
Mode
abgeleitet, die alle Methoden als virtuelle Methoden der abgeleiteten Klassen enthält. Soweit so gut,
Später übergebe ich das Objekt an eine weitere Klasseint VirtualSpace::setVirtualSpace(Mode* acData) { this->acData= acData; }
Was ich möchte, ist eine locale Kopie vom Objekt acData innerhalb der VirtualSpace Klasse. Leider arbeitet man ja so wie Zeigern, was ich aber nicht will. Scheinbar muss man mit Copy Konstruktor arbeiten, aber durch die Ableitung der von Mode Klasse komme ich hier gar nicht zurecht. Vielleicht könnte hier jmd aushelfen.
Vielen Dank
-
Wenn du wirklich eine Kopie benötigst, dann solltest du den Klassen eine virtuelle (bzw. abstrakte) Clone()-Funktion spendieren.
Und dann so aufrufen:int VirtualSpace::setVirtualSpace(Mode* acData) { this->acData = acData->Clone(); }
Du solltest dich aber selbst fragen, ob du wirklich eine (lokale) Kopie benötigst. Meistens gibt es besser Design-Möglichkeiten.
P.S. Bist du sicher, daß du hier im richtigen Unterforum bist (C++/CLI != C++)?
-
Hallo,
Danke für die Info.
Ich bin nicht von Haus aus Programmierer daher bin ich mir nicht sicher wohin der Beitrag gehört.
In meinen Objekt befindet sich u.a. ein Bild welches ich lokal ändern muss. Das eigentliche Objekt muss für Analyse- und Speicherwerke erhalten bleiben.
MfG Maik