Warum kann ich hier kein const verwenden?
-
Hallo,
ich habe ein Problem mit einem Programm, das Alter, Dienstjahre und Verdienst von 2 Angestellten ausgeben soll. Dazu soll eine Klasse "Employee" verwendet werden.Dies ist mein Programm:
#include<iostream> using namespace std; class Employee { private: int age; int years_of_service; int salary; public: void set_age (int a); int get_age() const; void set_years_of_service (int y_o_s); int get_years_of_service() const; void set_salary (int s); int get_salary() const; }; void Employee:: set_age (int a) { age=a; } int Employee::get_age() { return age; } void Employee::set_years_of_service (int y_o_s) { years_of_service=y_o_s; } int Employee::get_years_of_service() { return years_of_service; } void Employee::set_salary (int s) { salary=s; } int Employee::get_salary() { return salary; } int main() { Employee heini; heini.set_age(20); heini.set_years_of_service(2); heini.set_salary(5000); Employee fritz; fritz.set_age(50); fritz.set_years_of_service(10); fritz.set_salary(10000); cout<<"Heini:\n"; cout<<"Alter: "<<heini.get_age()<<"\n"; cout<<"Dienstjahre: "<<heini.get_years_of_service()<<"\n"; cout<<"Verdienst: "<<heini.get_salary()<<"\n"; cout<<"Fritz:\n"; cout<<"Alter: "<<fritz.get_age()<<"\n"; cout<<"Dienstjahre: "<<fritz.get_years_of_service()<<"\n"; cout<<"Verdienst: "<<fritz.get_salary()<<"\n"; cin.get(); }Leider funktioniert es so nicht, erst wenn ich "const" in Zeile 12, 14 und 16 entferne. Soweit ich es sehe, verändern die entsprechenden Funktionen jedoch keine Variablen. Warum kann ich dann kein const verwenden?
-
Du musst das
constbei der Implementierung auch angeben.also
int Employee::get_age() const // <-- hier! { return age; }
-
Es klappt! Vielen Dank!