Klasse erstellen mit vectoren...
-
Hey C++ler,
ich möchte eine Klasse erstellen, die aus zwei Vectoren besteht.
In diese Vektoren sollen Werte über eine "Create" und gleichzeitig auch "Check" Funktion eingelesen werden (Die Funktion füllt die Vectoren und überprüft ebenfalls ob die eingegebenen Werte erlaubt/korekt sind).Ich habe möchte es ca. so aufbauen:
class Paare { public: vector<string>name; vector<double>alter; }; Paare p; void create_check(Paare &p,string name,double age) { if(age<0){return;} //Ungültiges Alter? else { p.name.push_back(name); p.alter.push_back(age); } }So in etwa habe ich mir das vorgestellt....
Könnte das so funktionieren? Wie muss ich die push_back Funktion, die der Paare Klasse ja nicht bekannt ist, einbinden, dass sie auch in vectoren eines "Paare" werte anhängen kann?
-
Eine Funktion die eine Referenz auf ein Objekt einer bestimmten Klasse entgegen nimmt, kann ich bis hier hin schreien hören, dass sie eine Memberfunktion sein möchte. Und name und alter möchten gerne privat werden
.Deine Frage mit dem push_back verstehe ich nicht. alter und name sind doch vectoren, klar kennen die push_back.
vector<double> alter;unddouble agemachen mir Angst.string-Übergabe per Kopie löst auch Gefühle aus, aber keine starken.
-
Hallo Golfi1812,
erstelle lieber eine Klasse 'Person':
class Person { public: std::string name; int age; };(am besten noch mit geeigneten Zugriffsmethoden anstatt öffentlichen Membern)
und packe diese dann in einenstd::vector<Person>So hast du immer alle Daten zu einer Person zusammen und brauchst nicht in zwei verschiedenen Containern nachzuschauen (und bei Erweiterung der Person-Klasse um eine weitere Eigenschaft ändert sich (fast) nichts an deinem Code...)