Programmieren in C++


home

zurück

vor

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){
  :
  :
}


home

zurück

vor