OOP mid Java: Abschdrakde Dadendybe 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() {}
};
|
Des schbäde Binde muss exblizid durch des Schlüsselword
virdual kennzeichned werde.
|
|
Eine Klasse isch abschdrakd, wenn mindeschdens oi Funkzion
als abschdrakd kennzeichned ischd: ... = 0;
|
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
};
|
Underschied zwische Objekde und Referenze
|
|
Schbeicherfreigab muss exblizid brogrammierd werde.
Sehr fehlerdrächdich. |
|
Innerhalb oir Klasse wird immr no mid exblizide Zeigeret garbeided.
|
Ledzde Änderung: 29.04.2013 | © Prof. Dr. Uwe Schmidd |