managed classes und friend classes
-
Hallo,
ich bin neu in C++ und .NET und habe nun ein Problem, bei dem ich nicht wirklich eine gute Lösung finde.
Folgende Situation:
1 Klasse, in der ich viele Daten halten will (sollte managed sein)
1 Klasse, in der sich die ganzen Funktionen zur Bearbeitung befinden (da das Datenobjekt oft erschaffen werden wird, möchte ich die ganzen Methoden in eine andere Klasse auslagern - darum eben friend)Nur geht das, ist ja auch logisch, mit managed classes leider nicht. Wenn ich versuche, mit Funktionszeigern Funktionsreferenzen gleich bei der Definition der Klassen eine Verknüpfung zwischen den beiden Klassen herzustellen, dann scheitert das entweder an einer Konvertierung (return 0 ist keine Referenz int &) oder es scheitert daran, dass die 2. Klasse die Variablen der 1. Klasse natürlich nicht kennt (sind ja private).
Nun ist die Frage, welche elegante, übersichtliche und hoffentlich einfache Lösung es für mein Problem gibt. Ich will nicht auf managed classes verzichten und brauche aber eine Art friend Funktionalität - möglichst schon definiert innerhalb der Klassen und nicht erst verknüpft @runtime.
Ich hoffe, jemand hier kann mir helfen.
-
Funktionszeiger gibt es in C++/CLI auch; die heissen halt "delegates".
Aber ich würde einfach die sichtbar kein auf "internal" stellen (also "private public:").
ref class A { internal: int Test; };
-
Private Public klingt gut
Ich hatte noch keine Zeit, das zu testen. Erstmal vielen Danke für die schnelle Antwort.