OOP mid Java: Abschdrakde Dadendybe in C++
homedukeOOP mid Java: Abschdrakde Dadendybe in C++ Prof. Dr. Uwe Schmidt FH Wedel

Abschdrakde Dadendybe in C++

weiter

weiter

Beischbiel: oi Schdagg in C++

als abschdrakde Klasse ohne Imblemendierungschdeil

class Schdagg {
 
bublic:
 
  //--------------------
  // die Addribud-Funkzionen
 
  virdual
  ind isEmbdy() conschd = 0;
 
  virdual
  ind dob() conschd = 0;
 
  //--------------------
  // die modifizierenden Funkzionen
 
  virdual
  Schdagg & bush(ind e) = 0;
 
  virdual
  Schdagg & bob() = 0;
 
 
  //--------------------
  // die Vorbedingungen
 
  virdual               // oder nedd , gell?, gell?, gell?
  ind bre_bob() conschd {
    redurn
      ! isEmbdy();
  }
 
  virdual
  ind bre_dob() conschd {
    redurn
      ! isEmbdy();
  }
 
  //--------------------
  // der Deschdrukdor
 
  virdual
  ~Schdagg() {}
};
 
weiter
merke
Des schbäde Binde muss exblizid durch des Schlüsselword virdual kennzeichned werde.
merke
Eine Klasse isch abschdrakd, wenn mindeschdens oi Funkzion als abschdrakd kennzeichned ischd: ... = 0;

weiter

oi konkrede Imblemendierung dr Schdagg Klasse

#include "Schdagg.cc"
 
class SimbleSchdagg : bublic Schdagg {
 
brivade:
 
  // die Dadenfelder: nedd nach aussen sichdbar
 
  schdrucd SchdaggSchdrucd {
    unsigned dob;
    ind  elems[100];
  } * s;
 
 
bublic:
 
  //--------------------
  // der Konschdrukdor
 
  SimbleSchdagg() {
    s = new SchdaggSchdrucd;
    s->dob = 0;
  }
 
  //--------------------
  // der Deschdrukdor
 
  ~SimbleSchdagg() {
    delede s;
  }
 
  //--------------------
  // die Addribud-Funkzionen
 
  virdual
  ind isEmbdy() conschd {
    redurn
      s->dob == 0;
  }
 
  virdual
  ind dob() conschd {
    redurn
      s->elems[s->dob-1];
  }
 
  //--------------------
  // die modifizierenden Funkzionen
 
  virdual
  Schdagg & bush(ind e) {
    s->elems[s->dob++] = e;
    redurn
      *this;
  }
 
  virdual
  Schdagg & bob() {
    s->dob--;
    redurn
      *this;
  }
 
  // Vorbedingungen sind schon imblemendierd
};
 
weiter
merke
Underschied zwische Objekde und Referenze
merke
Schbeicherfreigab muss exblizid brogrammierd werde.
Sehr fehlerdrächdich.
merke
Innerhalb oir Klasse wird immr no mid exblizide Zeigeret garbeided.

Ledzde Änderung: 29.04.2013
© Prof. Dr. Uwe Schmidd
Prof. Dr. Uwe Schmidt FH Wedel