C++ Objekte einer Klasse unterscheiden und ansprechen

KingJoshii1000

Lieutenant
Registriert
Apr. 2010
Beiträge
879
Hallo,
ich weiß nicht ob es durch den Titel deutlich wird, was ich gerne erfragen möchte, jedoch probiere ich es mal näher zu beschreiben, unzwar habe ich mir eine Book Class programmiert. Die hat den Konstruktor:
Code:
book(string ISBN, string Title, string Author, string Copyright_date, bool Available, genre Genre_Input)
Wenn ich nun per Code Book asd(...) initializiere, dann bekomme ich das Objekt asd. Verbessert mich, wenn man das hier nicht Objekt nennt. Nun möchte ich dem Benutzer die Möglichkeit geben selber Book Objekte zu erzeugen. Jedoch soll er diese auch seperat ansprechen können, sprich er erstellt Book Beispiel1 und Book Beispiel2. Nun möchte er den Titel von Book1 ändern, wie kann ich das Objekt Book1 nun ansprechen? Früher in C# habe ich bei der Erstellung des Objektes dieses in ein Array geschrieben, wodurch ich es dann später auswählen, löschen oder bearbeiten konnte. Das geht bestimmt noch einfacher, jedoch funktionierte die Lösung. Wie setze ich das nun in C++ um oder gibt es da eine noch einfachere Methode?

Wünsche ein schönes Wochenende
Mit freundlichen Grüßen
 
Du hast deine

Code:
class book{

Mit Variablen

Code:
public:
    string ISBN, Title;
    ...

und deinem Constructor:

Code:
book(string ISBN, string Title, string Author, string Copyright_date, bool Available, genre Genre_Input){
this->ISBN = ISBN;
this->Title = Title;
...
}

Und dem Ende deiner Klasse

Code:
}

Nun hast du deine Main

Code:
...
book book1(1234567, "Titel1", ...);
book book2(98745612, "Titel2", ...);
...

Und nun änderst du einfach den Titel der Bücher:

Code:
...
book1.Titel="Titel01"
book2.Titel="Titel02"
...



Überlicher ist es jedoch sich Set- und Get-Funktionen zu bauen, sodass du in deiner Klasse sowas noch hast:

Code:
...
void set_Title(String title) {
this->Title = Title;
}
...

und in der Main dann:

Code:
...
book1.set_Title("Titel01")
book2.set_Title("Titel02");
...



ACHTUNG: Das ganze habe ich gerade aus dem Kopf geschrieben und ich hoffe, ich habe keine zu gravierenden Syntaxerrors mit eingebaut!

Ich hoffe, ich konnte helfen.
 
Die C++-Standardbibliothek bietet Strukturen ähnlich wie C#, z.B. map, vektor, queues usw.

Alternativ müsstest du die etwas eigenes überlegen um die Daten zu speichern. Du kannst dir z.B. eine Klasse "verkette Liste" schreiben die das dann übernimmt.

Du kannst die Daten auch in eine Datenbank schreiben, hier bietet sich SQLite an.
 
Für eine verkettete Liste einfach std::list verwenden.

Wenn du einen index-operator möchtest ist std::vector deine Wahl. Dann kannst du über meinBuchVector[123] auf das Buch 123 in deiner Liste zugreifen.
 
Überleg dir anhand von welchem Property du deine Objekte finden willst. Und dann speicherst du sie einfach in einer Map.

z.B. std::map<ISBN, Buch>
 

Ähnliche Themen

Antworten
6
Aufrufe
1.923
Zurück
Oben