Ü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

    1. hat auch nicht funktioniert

    2. 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 zeitdruck 😞

       string 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 und alter an.



  • @Th69 aah perfekt es klappt vielen Danke 😃


Log in to reply