Ein Objekt aus mehreren Klassen bilden
-
Hallo zusammen!
Ich hänge seit Stunden an einer Aufgabe und auch mit Hilfe von Unterlagen und Google-Suche komme ich der Antwort nicht näher. Ich hoffe hier kann mir jemand helfen.
Ich möchte natürlich keinen vollständigen Code, sondern vielleicht etwas Hilfe bei meinem "auf der Leitung stehen"
Ich habe eine Basisklasse und daraus habe ich zwei weitere Klassen abgeleitet.
Zudem habe ich noch zwei weitere eigentständige Klassen.Ich würde gerne aus diesen vier Klassen (Basisklasse nicht mit eingerechnet) Objekte erstellen, die mit allen vier Klassen in Verbindung stehen.
Das hat nix mit meiner eigentlichen Aufgabe zutun, aber als Beispiel wäre es, wenn ich eine Klasse Sitzplätze habe und eine Klasse Gast (für ein Kino beispielsweise) und ich möchte jetzt ein Array bilden mit 15 Sitzplätzen und für jeden Sitzplatz möchte ich den Gast hinterlegen. Platz 1 ist x, Platz 2 ist y usw.
Sodass ich z.B. ausgeben kann, dass auf Platz 1 Herr x sitzt usw.
Ich habe mir das Schema auf Papier gezeichnet, aber mir fehlen jetzt die Werkzeuge um das in C++ auszuarbeiten. Wie gesagt, ich würde einfach nur um einen Denkanstoß bitten. Fall's es dazu schon ein Thema geben sollte, und ich einfach nur im Eifer des Gefechts die falschen Suchbegriffe verwendet habe, tut es mir leid.
Danke schonmal und Gruß
-
Ich denk was du suchst ist sowas in der Art:
std::map<Sitzplatz*, Gast*>
Bzw einfach:Gast* platzbelegung[15];
-
Danke erstmal für eine Antwort!
Quasi mit Zeigern? * deutet doch auf einen Zeiger hin?
Wie verhält es sich denn, wenn ich nicht nur die zwei Klassen Gast und Sitzplatz habe, sondern noch die Klasse Saal.
In einem Saal sind x Sitplätze und auf Sitzplat 13 sitzt Herr y.
Theoretisch wäre das Konstrukt einfach, nur mir entziehen sich gerade die Programmierwerkzeuge. Das Problem ist, dass ich eine solch ähnliche Aufgabe für einen Nachweis meines Studiums erbringen muss und halt nicht die Zeit habe jetzt C++ wieder stundenlang durchzuwälzen
Aber danke!
-
Du könntest eine Variable in der Klasse Sitzplatz vom Typ Gast anlegen. Das erlaubt es dir sehr einfach auf die Informationen zuzugreifen.
So könnte das z.B. aussehen:public ref class Gast { public: System::String ^ name; Gast(System::String ^ nameArgument) { name = nameArgument; } }; public ref class Sitz { public: Gast ^ gast; int sitzplazNr; Sitz(Gast ^ gastArgument, int sitzplatzNrArgument) { gast = gastArgument; sitzplatzNr = sitzplatzNrArgument; } }; array<Sitz ^> ^ sitz = gcnew array<Sitz ^>(15); sitz[0] = gcnew Sitz(gcnew Gast("EinName"), 1);
Ausgeben kannst du das Ganze dann so:
"Auf Sitz " + Convert::ToString(sitz[0]->sitzplatzNr) + " sitzt " + sitz[0]->gast->name;
Wenn du jetzt auch noch eine Klasse Saal haben möchtest, muss eben das Array sitz eine Variable der Klasse Saal sein.