Zugriff auf privat: - Eigenschaften von Objekten (v. Extern)
1. Fall: Einzelne primitive Datentypen
Bsp.:
class Datum {
int tag;
};
int main (){
Datum heute;
: // heute wird "gesetzt"
:
Zugriff auf heute.tag ist nicht möglich da es sich um eine private: - Eigennschaft
handelt
Ausweg: public: - Memberfunktion gettag() in der Klasse "Datum"
int gettag(void){return tag;}
int t;
Datum liste[100];
t=liste[1].gettag();
cout << "Morgen ist der " << liste[1].gettag() << ´´\n´´;
t=liste[1].gettag()+1;
cout << "Morgen ist der " << t << ´´. April\n´´;
int gettag(int id){
if(id==1||id==2)
return tag[id-1];
else
return -1;
}
void erfassen(){
int t,m,j;
do{
cout << "Tag ";
cin >> t;
cout << "Monat";
cin >> m;
cout << "Jahr";
cin >> j;
}while(setdatum(t,m,j)==1);
}
int setdatum(int pt, int pm, int pj){
int ok;
// Prüfung ob pt,pm,pj gültiges Datum
if(ok){
tag = pt;
monat = pm;
jahr = pj;
return 0;
}
else
return 1;
}
int settag(int t){
int m,j;
m=monat;
j=jahr;
return setdatum(t,m,j);
}
Auftraggeber ==> settagb(*) <==> setdatum(x,y,z)
|
2. Fall: Eigenschaften die aus Feldern (Array´s) bestehen

Auslesen von Privat:
class Person{
char nname[30];
:
:
public:
:
:
void getnname(char* rueckstrg){
strcpy (rueckstrg, nname);
}
:
:
};
int main(){
Person lehrer;
char tempstrg[80];
lehrer.einlesen();
lehrer.getnname(tempstrg);
cout << tempstrg;
:
:
:
return 0;
}
Einlesen von Privat:
class Person{
char nname[30];
:
:
public:
:
:
void setnnname(char* sollstrg){
strcpy (nname, sollstrg);
}
:
:
};
int main(){
Person lehrer;
char tempstrg[80];
cout << "Nachname";
cin.getline(tempstrg,30);
lehrer.setnname(tempstrg);
:
:
return 0;
}
int pruefdat(int t,int m,int j){
:
:
}
Variante 1
int settag(int t){
int m,j;
m=monat;
j=jahr;
return pruefdat(t,m,j);
}
Variante 2
int settag(int t){
return pruefdat(t,monat,jahr);
}
class Person{
char name[30];
Datum gebdat1;
public:
Datum gebdat2;
int setgeb1(int t,int m,int j){
return gebdat1.pruefdat(t,m,j);
}
};
int main(){
Person ich;
ich setgeb1(14,4,2000);
ich,gebdat2.pruefdat(17,4,2000);
class Datum{
int tag,monat,jahr;
public:
Datum();
int schaltjaht(int);
int pruefdat(int,int,int);
};
int Datum::schaltjahr(int j){
:
:
}
|