Ezzz
Grünschnabel
Hallo,
noch eine wahrscheinlich selten dämliche Frage, aber ich kriegs leider auch nach diversen Versuchen nicht hin:
Ich habe zwei Klassen (ich nenne sie mal Klasse 1 und Klasse 2
), die "nach aussen" die gleiche Funktionalität und die gleich benannten Methoden haben. Nur in den Klassen selbst gibt es unterschiede in der Realisation der Methoden, speziell der Datenstrukturen.
Ich habe eine Klasse, die nun zur Laufzeit wählen soll, ob sie ein Objekt der Klasse 1 oder ein Objekt der Klasse 2 anlegen soll. Das Objekt soll jedoch nicht mit new auf dem Heap angelegt werden und es soll für alle Methoden der Klasse sichtbar sein. Im Idealfall sollte eine weitere Klasse, die das Objekt der aufrufenden Klasse erstellt, auch darauf zugreifen können.
... puh ... wahrscheinlich liest so viel Text kein Mensch..
Also kurz die Zugriffe:
KlasseA erstellt Objekt KlasseB erstellt Objekt Klasse1 oder Klasse2
KlasseA greift zu auf: Klasse B und Klasse1 oder Klasse2
Klasse B greift auf Klasse1 oder Klasse2 zu.
Meine Idee war, in der header-Datei von Klasse B Objekt von Klasse1 und Klasse2 zu erzeugen und anschliessend einen Pointer entweder auf Objekt1 oder auf Objekt2 zu setzen. Dann kann ich aber leider die Methoden der Objekte mit dem Pointer nicht nutzen (Fehlermeldung: *Klasse1|2 muss eine Struktur/Unionen/Klasse sein...)
Vielleicht hat jemand eine bessere Idee bzw. weiss die korrekte Vorgehensweise.
Schon mal vielen Dank,
Grüße,
Ezzz
noch eine wahrscheinlich selten dämliche Frage, aber ich kriegs leider auch nach diversen Versuchen nicht hin:
Ich habe zwei Klassen (ich nenne sie mal Klasse 1 und Klasse 2

Ich habe eine Klasse, die nun zur Laufzeit wählen soll, ob sie ein Objekt der Klasse 1 oder ein Objekt der Klasse 2 anlegen soll. Das Objekt soll jedoch nicht mit new auf dem Heap angelegt werden und es soll für alle Methoden der Klasse sichtbar sein. Im Idealfall sollte eine weitere Klasse, die das Objekt der aufrufenden Klasse erstellt, auch darauf zugreifen können.
... puh ... wahrscheinlich liest so viel Text kein Mensch..

Also kurz die Zugriffe:
KlasseA erstellt Objekt KlasseB erstellt Objekt Klasse1 oder Klasse2
KlasseA greift zu auf: Klasse B und Klasse1 oder Klasse2
Klasse B greift auf Klasse1 oder Klasse2 zu.
Meine Idee war, in der header-Datei von Klasse B Objekt von Klasse1 und Klasse2 zu erzeugen und anschliessend einen Pointer entweder auf Objekt1 oder auf Objekt2 zu setzen. Dann kann ich aber leider die Methoden der Objekte mit dem Pointer nicht nutzen (Fehlermeldung: *Klasse1|2 muss eine Struktur/Unionen/Klasse sein...)
Vielleicht hat jemand eine bessere Idee bzw. weiss die korrekte Vorgehensweise.
Schon mal vielen Dank,
Grüße,
Ezzz