Über getline oder cin auf einzelne Attribute der Objektinstanz zugreifen
-
Guten Morgen,
ich habe eine Basisklasse Person mit den Attributen vorname, nachname und alter. Nun möchte ich, dass das Programm über getline/ cin die Informationen einlist und in dem Objekt p1 speichert und wieder ausgibt.
Meine Vorgehensweise ist wie üblich (falsch):
Könnt ihr mir zeigen, wie ich Attribute über getline/cin initalisieren kann?
Ps: die Fehlermeldung: Keine Instanz von überladene Funktion "getine" stimmt mit der Argumentliste überein."
Also müsste ich ja die anderen getter auch reinsetzen, aber-
hat auch nicht funktioniert
-
möchte ich eben nur den Vornamen einlesen lassen
Danke#include "Person.h" Person p1{ "h","g",0 }; cout << "Bitte geben Sie den Namen der Person ein: "; getline (cin, p1.get_vorname()); // Problem /*Person p2 = { "ahdhd", "ijkldsf", 45 }; cout << p2.to_string(); cout << endl;*/ system("PAUSE"); return 0; }
-
-
@mmm_1482_ sagte in Über getline oder cin auf einzelne Attribute der Objektinstanz zugreifen:
Ps: die Fehlermeldung: Keine Instanz von überladene Funktion "getine" stimmt mit der Argumentliste überein."
getline möchte z.B. als zweites Argument einen
std::string
. Die Fehlermeldung deutet darauf hin, dass du getline mindestens einen falschen Typ übergibst (Ist in deinem Beispiel aber nicht ersichtlich).
-
Du solltest zuerst die Daten einlesen und mit diesen dann das
Person
-Objekt erzeugen.Man kommt zwar als Mensch auch ersteinmal ohne Namen zur Welt und kriegt danach dann erst einen zugewiesen, beim Programmieren sollte man aber nicht ohne Grund Dummy-Daten erzeugen (wie bei dir in Zeile 3).
Außerdem dient ein Getter ja zum Auslesen der vorhandenen Daten eines Objekt, nicht zum Setzen.
-
@Th69 meinst du das so?
Wie kann ich denn dann diese werte in p1 einspeichern?Kannst du mir bitte den code dazu zeigen? ich stehe etwas unter zeitdruckstring vorname = ""; string nachname = ""; int alter = 0; cout << "Bitte geben Sie den Vorname der Person ein: "; getline(cin, vorname); Person p1 = { ... };
-
Als Parameter gibt du
vorname
,nachname
undalter
an.
-
@Th69 aah perfekt es klappt vielen Danke