Es ist schon einige Zeit her, seit ich das letzte Mal Code geschrieben habe, aber ich versuche, die wenigen Fähigkeiten, die ich beim Lernen gewonnen habe, zu beseitigen. Im Moment versuche ich nur Lösungen für Aussagen/Fragen zu implementieren, die ich online sehe.C++ Liste innerhalb der Klasse, um Benutzereingaben zu speichern
Dafür versuche ich eine Allergie-Klasse zu bauen, die Informationen (Kategorie, Name, Symptome) speichert, die durch Benutzereingaben zur Verfügung gestellt werden. Ich begann damit, dass ich nur einen String-Input für jeden Parameter nahm, aber in der realen Welt können Menschen mehrere Symptome haben. Dafür möchte ich einen Listenparameter für Symptome anstelle einer einzelnen Zeichenfolge erstellen. Hier sind meine Dateien:
Allergy.hpp:
#ifndef Allergy_hpp
#define Allergy_hpp
#include <iostream>
#include <string>
#include <list>
using namespace std;
class Allergy {
public:
Allergy();
Allergy(string, string, list <string>);
~Allergy();
//getters
string getCategory() const;
string getName() const;
list <string> getSymptom() const;
private:
string newCategory;
string newName;
list <string> newSymptom;
};
#endif /* Allergy_hpp */
Allergy.cpp:
#include "Allergy.hpp"
Allergy::Allergy(string name, string category, list <string> symptom){
newName = name;
newCategory = category;
newSymptom = symptom;
}
Allergy::~Allergy(){
}
//getters
string Allergy::getName() const{
return newName;
}
string Allergy::getCategory() const{
return newCategory;
}
list Allergy::getSymptom() const{
return newSymptom;
}
main.cpp:
#include <iostream>
#include <string>
#include "Allergy.hpp"
using namespace std;
int main() {
string name;
string category;
string symptom;
cout << "Enter allergy name: ";
getline(cin, name);
cout << "Enter allergy category: ";
getline(cin, category);
cout << "Enter allergy symptom: ";
getline(cin, symptom);
Allergy Allergy_1(name, category, symptom);
cout << endl << "Allergy Name: " << Allergy_1.getName() << endl <<
"Allergy Category: " << Allergy_1.getCategory() << endl <<
"Allergy Symptom: " << Allergy_1.getSymptom() << endl;
return 0;
}
Ich habe es nicht auf die gemacht Implementierung in main.cpp. Fürs Erste bleibe ich beim Erstellen eines Getters für die Liste in Allergy.cpp. Jede Führung wird sehr geschätzt !!!
Vielen Dank!! Ich fing den Getter-Fehler kurz nach der Veröffentlichung - Doh. Danke für den Pro-Tipp zum Ausdruck der Liste. Kannst du die for-Schleife etwas mehr erklären? - Es funktioniert trotzig, aber ich möchte nichts verwenden, was ich nicht verstehe. – user1748681
Der for-Bereich durchläuft die Elemente eines Containers (nach dem ':') mit einer Inhaltsvariablen (hier s, und ich möchte mich nicht mit dem Typ beschäftigen, also setze ich automatisch). Weitere Informationen finden Sie hier: http://en.cppreference.com/w/cpp/language/range-for – Christophe