Set\Get funktionen ?
-
Also ich lerne im moment C++ mit dem Buch C++ in 21 Tagen.
Und dort ist ein Code den ich nicht ganz verstehe, ich poste mal den ganzen code:
class Car { public: // die nächsten fünf sind public void Start(); void Accelerate(); void Brake(); void SetYear(int year); int GetYear(); private: // der Rest ist private int Year; Char Model [255]; }; // Ende der Klassendeklaration Car OldFaithful; // eine Instanz von car int bought; // eine lokale Integer-Variable OldFaithful.SetYear(84) ; // weist year 84 zu bought = OldFaithful.GetYear(); // setzt bought auf 84 OldFaithful.Start(); // ruft die start-Methode aufNaja ist zwar ein anständiger code, aber ich versteh hier etwas nicht. Und zwar ist es die Zeile :
bought = OldFaithful.GetYear(); // setzt bought auf 84ich versteh nicht wieso hier bought plötzlich 84 ist. Ich verstehe schon das 'year' 84 ist, da ja mit der funktion
OldFaithful.SetYear(84) ; // weist year 84 zuder variable Year der Wert 84 zugewiesen wird. Aber nirgendwo steht, das bought auch 84 sein soll, da ja GetYear nichts tut. Deshalb wollt ich fragen ob es sein kann, das die nicht einfach so "GetYear" und "SetYear" heißen, sondern das "Get" und "Set" auch funktionen sind, die wirklich "Bekommen" und "Setzen" .
Ich hoffe mich hat hier irgendeiner verstanden ^^
Kurz und knapp : Sind "get" und "set" von "GetYear" und "SetYear" voreingestellte funktionen von C++ oder sind das nur ganz normale Namen
Und wenn nicht, könnt ihr mir dann erklären wie der wert 84 in bought reingeraten ist ^^
Danke für jegliche hilfe
mfg
Eddy14
-
Eddy14 schrieb:
ich versteh nicht wieso hier bought plötzlich 84 ist. Ich verstehe schon das 'year' 84 ist, da ja mit der funktion
OldFaithful.SetYear(84) ; // weist year 84 zuder variable Year der Wert 84 zugewiesen wird. Aber nirgendwo steht, das bought auch 84 sein soll, da ja GetYear nichts tut.
GetYear gibt auch nur den Wert von Year zurück, die Zuweisung wird durch den = Operator ausgeführt. Im Grunde ist
bought = OldFaithful.GetYear();nichts anderes als z.B.
zahl = 42;Kurz und knapp : Sind "get" und "set" von "GetYear" und "SetYear" voreingestellte funktionen von C++ oder sind das nur ganz normale Namen
Das sind ganz normale Namen. Es gibt ein paar "voreingestellte" Namen in C++, das sind einmal Konstruktoren und Destruktoren, die ihren Namen von der Klasse bekommen (Car und ~Car), und andererseits überladene Operatoren wie operator+ oder operator new.
-
Aber nirgendwo steht, das bought auch 84 sein soll, da ja GetYear nichts tut.
GetYear tut schon etwas, nur steht das, was es tut, an der Stelle Deines Codeausschnittes nicht geschrieben. (Aber wenn Du danach gehst, dann tut ja keine Funktion Deiner Klasse etwas.) Irgendwo anders würde im richtigen Programm jedoch folgendes stehen:
int Car::GetYear () { return Year; }Und damit liefert die Funktion den Wert Year Deines Objektes zurück, weshalb die Gleichung bought = OldFaithful.GetYear(); durchaus korrekt ist.
-
Ahh danke euch beiden.
Hey NES-Spieler , genau das habe ich auch gedacht, aber da ich leider diese code zeile nicht finden konnte habe ich gedacht und gedacht , und dachte dann am ende ( ^^ ) das es vielleicht wirklich an den namen von "Get" und "Set" liegt. Leider ist diese Code Zeile nicht angegeben, der autor hatte wohl kein bock weiter zu shcreiben und hat dann wohl an dieser stelle abgebrochen.
Danke Leute ihr habt mir echt geholfen. Ich lerne dann mal weiter

PS: Super Forum, vor allen dingen die schnellen antworten die man hier bekommt ^^
-
Dein Buch darfst du getrost verbrennen.
Kaufe dir das hier oder stirb:
http://www.amazon.de/exec/obidos/ASIN/3826615344/qid=1147282572/sr=8-1/ref=sr_8_xs_ap_i1_xgl/302-0569065-0007200
