Hilfe beim verstehen eines Programmcodes
-
Hallo

ich hab hier einen code vor mir liegen und verstehe an mehreren stellen nicht, was er genau mach - könnt ihr mir da weiterhelfen?header:
#include <conio.h>
#include <iostream.h>
#include <string.h>class Hund
{
private:
string name;
string farbe;
int alter;public:
//Konstruktor:
Hund(const string& name="", const string& farbe="", int alter=0);
~Hund();const string& getName() {return name;}
const string& getFarbe() {return farbe;}
int getAlter() {return alter;}bool setName(const string& n)
{ if(n.size()<1)
return false;
name=n;
return true;
}bool setFarbe(const string& f)
{ if(f.size()<1)
return false;
farbe = f;
return true;
}void setAlter(int a) {alter = a;}
void display();
};dekl:
#include "hund.h"
Hund::Hund(const string& name, const string& farbe, int alter)
{
setName(name); setFarbe(farbe); setAlter(alter);
}Hund::~Hund(){}
void Hund::display()
{
cout<<"Name: "<<name<<endl;
cout<<"Farbe: "<<farbe<<endl;
cout<<"Alter: "<<alter<<endl;
}main:
#include "hund.h"
#pragma hdrstop
#pragma argsusedHund hund("a", "a", 1);
int main(int argc, char* argv[])
{
Hund hund2("Bello", "Schwarz", 12);
hund2.display();getch();
}Nun meine Fragen:
was macht das Programm an diesen beiden stellen: int getAlter() {return alter;} // void setAlter(int a) {alter = a;}
Das getAlter ist doch nur zum betrachten, während das setAlter zur veränderung von alter im private ist ... aber wie genau läuft das Programmintern ab?^^Danke im voraus

-
Hallo
Mr. Blonde schrieb:
Hallo

int getAlter() {return alter;} void setAlter(int a) {alter = a;}Du hast es doch schon geschrieben. Die Methode getAlter gibt die Memebervarible alter zurück und die Methode setAlter erwartet einen Wert und setzt die Memebervariable auf alter auf den übergebenen Wert.
chrische
-
chrische5 schrieb:
Hallo
Mr. Blonde schrieb:
Hallo

int getAlter() {return alter;} void setAlter(int a) {alter = a;}Du hast es doch schon geschrieben. Die Methode getAlter gibt die Memebervarible alter zurück und die Methode setAlter erwartet einen Wert und setzt die Memebervariable auf alter auf den übergebenen Wert.
chrische
Kannst du das bitte nochmal ein bissle verständlicher ausdrücken?
ich schnall das irgendwie nicht ... danke
-
Hallo,
wo hast du denn den Code her? Was genau steht denn da zu entsprechenden Funktionen?
-
Wenn du z.B. irgendwo das Alter von Hund2 ausgeben möchtest, kannst du nicht einfach schreiben:
cout << Hund2.alter;weil alter private ist.
Deswegen benutzt du die Methode getAlter und schreibst:cout << Hund2.getAlter();Genauso kannst du nicht schreiben:
Hund2.alter = 8;sondern musst die Methode setAlter nutzen:
Hund2.setAlter(8);
-
Hallo
Ich versuche es erneut:
int getAlter() {return alter;}int ist der Rückgabetyp der Methode
getAlter ist der Name der Methode
() bedeutet, dass sie keine Parameter erwartet
die geschweiften Klammern an dieser Stelle bedeuten, dass es sich um eine Inline-Methode handelt
return alter bedeutet, dass die Memebervariable zurückgegeben wird:int a = ClassTest.getAlter()void setAlter(int a) {alter = a;}void bedeutet kein Rückgabetyp
setAlter ist der Name
(int a) heißt, dass diese Methode einen int-Wert als Parameter erwartet
{} siehe oben
alter = a bedeutet, dass die Memebervariabel alter auf den Wert des Parameters gesetzt wird.chrische
-
Ah ... danke

jetzt hab ich's geschnallt - vielen dank
