Programmieren - alles kontrollieren 4.938 Themen, 20.667 Beiträge

Wie in VC++ Strukturen klassenübergreifend kopieren (zuweisen)

(Anonym) / 2 Antworten / Flachansicht Nickles

Ich kann mit
struct Mensch
{
BYTE Alter;
CString Name;
};
Mensch M1,M2;

eine Struktur und 2 Membervariablen global in einer Dialogklasse definieren.
Im Dialog kann ich dann den Inhalt zuweisen

M1.Name="Hans"; M1.Alter=27;
M2=M1;

und kopieren.

Wenn ich jetzt Mensch auch außerhalb der Dialogklasse verwenden und kopieren will muss ich in der aufrufenden Klasse die Struct Mensch neu definieren.
Da der Compiler nicht weiß, daß es die gleiche Struktur ist, kann ich sie nicht mehr mit = kopieren. z.B. um die Membervariablen des Dialogs zu initialisieren.
Ich löse das immer durch ne Klasse statt ner Struktur und definiere mir einen neuen = Operator für ne CopyFunktion.
Ich finde das Verfahren aber sehr mühselig und muss außerdem wenn ich ein neues Element einfüge auch immer die Operator Funktion umschreiben.

Weiß jemand Rat.
Gruß Wolf



bei Antwort benachrichtigen
Dreamforger (Anonym) „Wie in VC++ Strukturen klassenübergreifend kopieren (zuweisen)“
Optionen

Definiert C++ nicht automatisch einen Copykonstruktor?
Ansonsten kannst du dir vieleicht mit memmove und nem cast helfen.

Ich verstehe auch dein Problem nicht ganz, drum sind die Vorschläge wohl etwas daneben

bei Antwort benachrichtigen