Constructor
-
hallo, die aufgabe lautet:
Create a class Student which contains the following variable members and function members:
Variable members:
• Last name
• First name
• Student ID
• Department, e.g. "FB 16".
• Semester number, e.g. 5, means the 5th semester.
• Field of study, e.g. "Computer Science".
Choose appropriate data types and names for these variable members.Function members:
• Default constructor
• Destructor
• Constructor to set the variable members.
• Copy constructor.
• Getter and setter methods for each variable member, e.g.
string getVorame();
void setVorname(string vorname);The function members should be publicly available, and the variable members should not. Test the class by initializing an object of class Student in the main function with meaningful values. Then, change the Semester number, as the student goes up to the next semester.
Meine Lösungen:
Main:#include <iostream> #include "student.h" using namespace std; int main() { student hood("Manuel","Neuer",2468642,"FB16",5,"Computer Science"); hood.setsemesternumber(6); return 0; }Studend.cpp
#include "student.h" using namespace std; student::student(){} student::~student(){} student::student(string newlastname, string newfirstname, int newid, string newdepartment, int newsemesternumber, string newfield){ this->lastname=newlastname; this->firstname=newfirstname; this->id=newid; this->department=newdepartment; this->semesternumber=newsemesternumber; this->field=newfield; } string student::getlastname(){ return lastname; } void student::setlastname(string newlastname){ lastname=newlastname; } string student::getfirstname(){ return firstname; } void student::setfirstname(string newfirstname){ firstname=newfirstname; } string student::getdepartment(){ return department; } void student::setdepartment(string newdepartment){ department=newdepartment; } string student::getfield(){ return field; } void student::setfield(string newfield){ field=newfield; } int student::getid(){ return id; } void student::setid(int newid){ id=newid; } int student::getsemesternumber(){ return semesternumber; } void student::setsemesternumber(int newsemesternumber){ semesternumber=newsemesternumber; }Studen.h
#include <string> using namespace std; class student{ string lastname; string firstname; int id; string department; int semesternumber; string field; public: student(); ~student(); student(string newlastname,string newfirstname,int newid,string newdepartment,int newsemesternumber,string newfield); student(const student &a); string getlastname(); void setlastname(string lastname); string getfirstname(); void setfirstname(string firstname); string getdepartment(); void setdepartment(string department); string getfield(); void setfield(string field); int getid(); void setid(int id); int getsemesternumber(); void setsemesternumber(int snumber); };Wo genau steckt jetzt der Fehler?:/ ich komme iwie nicht voran
-
Solltest du nach 22 Beiträgen nicht so langsam mal gemerkt haben, wie man eine brauchbare Frage stellt?
-
was mir so spontan auffällt:
* Initialisierungslisten
* Semesterzahl: besser unsigned int (oder was bedeutet eine Semesterzahl von -2?)
* kein using namspace im Header verwenden
* std::string als const Ref übrgeben
* für Bezeichner wie setsemesternumber würde ich CamelCase verwenden, das ist sonst zu anstrengend zu lesen
* im Konstruktor brauchst du kein "this" (fällt bei Nutzung von Initialisierungslisten sowieso weg)
* Der default-Konstruktor initialisiert nichts
* der copy Konstruktor besitzt nur eine Deklaration, keine Definition (Implementierung)
* (leider durch Aufgabenstellung vorgegeben) der Destruktor ist überflüssig
-
Um das schon von SeppJ gesagte nochmals auszuformulieren:
Du sagst, du hast nen Fehler und kommst nicht weiter. Ok, du postest deinen Code. Und jetzt? Was willst du? Meinst du irgendjemand hat lust zu raten, was eventuell nicht so laufen könnte, wie du es dir vorstellst? - Nein.Also gib doch mal eine konkrete Beschreibung deines Problems, die entweder Fehlermeldungen enthält, oder, sollte es sich um einen logischen Fehler handeln, den du selber nicht lösen kannst, dann beschreibe was passieren soll und was, entgegen deiner Erwartung, passiert
In anderen Worten, lies dir bitte diesen Thread mal gründlich durch:
https://www.c-plusplus.net/forum/200753
Insbesondere die Punkte:Wähle einen aussagekräftigen Threadtitel.
Stell deine Fragen präzise.