Irgendwas läuft da schief...
-
¡Hola chicos!
Ich habe in einem dieser dicken Wälzer ein bisschen was über Klassen gelernt und habe jetzt ein kleines Übungsprogramm geschrieben. Eigentlich läuft's ganz okay, aber nur, wenn ich die Zeile "
person1.alter_aendern();" weglasse. Wenn ich die Zeile eingefügt habe, gibt mir der Compiler folgende Fehlermeldung für die Zeile "
int alter_aendern()" aus:error C4716: 'datensatz::alter_aendern' : must return a value
#include <iostream> #include <string> using namespace std; class datensatz { public: //Instanzvariablen string name, stadt; int alter, plz; //Methoden string name_aendern() { cin >> name; } string stadt_aendern() { cin >> stadt; } :warning: int alter_aendern() { cin >> alter; } int plz_aendern() { cin >> plz; } void ausgabe() { cout << "Name: " << name << endl; cout << "Alter: " << alter << endl; cout << "Wohnort: " << plz << " " << stadt <<endl; } }; int main() { datensatz person1; person1.name = "hart.mut"; person1.alter = 16; person1.plz = 0815; person1.stadt = "Dorf"; cout << "Name: " << person1.name << endl; cout << "Alter: " << person1.alter << endl; cout << "Wohnort: " << person1.plz << " " << person1.stadt <<endl; :arrow_right:person1.alter_aendern(); person1.ausgabe(); return 0; }Ich sitze nun schon seit 40 Minuten vor dem dummen Bildschirm, was besonders frustrierend ist, wenn man von vornherein weiß, dass der Fehler wahrscheinlich minimal ist.
Thanks für eure Hilfe!
-
Deine funktionen name_aendern(), stadt_aendern(), alter_aendern(), plz_aendern() sollten nichts zurückgeben da sie ja nur die membervariablen neu setzen.
void alter_aendern() { cin >> alter; }Das gleiche gilt für die anderen funktionen.
Wenn du tatsächlich etwas zurückgeben willst dann müsste so sein.string alter_aendern() { cin >> alter; return alter; }Kurt
-
Tsss wenn die Frage einfach ist kommen gleich 1000de Antworten

-
dali schrieb:
Tsss wenn die Frage einfach ist kommen gleich 1000de Antworten

Sch.. war wirklich spädt dran.
K.
-
sorry...doppelpost
-
warum verwendest du für die ganzen methoden nicht einfach void...beim ausgeben machst du das ja auch
und du solltest die attribute wie alter und so private setzen
MfG Kuldren
-