Systemnahe Programmierung in Chome Systemnahe Programmierung in C: Klassen Prof. Dr. Uwe Schmidt FH Wedel

Klassen

weiter

weiter

Zusammenfassen von Daten und Operationen

Klasse
als syntaktische Einheit für zusammengehörige Daten und Operationen
weiter
Objekte erzeugen mittels Konstruktor-Aufrufen

weiter

Beispiel: Stack4.cc

   1class Stack {
   2
   3protected:
   4
   5  int a[20];
   6  unsigned int topPtr ;
   7
   8public:
   9
  10  void push(int v) {
  11    a[topPtr++] = v;
  12  }
  13
  14  int top(void) {
  15    return a[topPtr -1];
  16  }
  17
  18  void pop(void) {
  19    --topPtr;
  20  }
  21
  22  int isEmpty(void) {
  23    return topPtr == 0;
  24  }
  25
  26  Stack() {
  27    topPtr = 0;
  28  }  
  29};
  30
  31
weiter

weiter

Anwendung: Main4.cc

   1#include "Stack4.cc"
   2
   3int main(void)
   4{
   5  Stack * s1 = new Stack();
   6  Stack * s2 = new Stack();
   7
   8  s1->push(...);
   9
  10  ... s1->top() ...;
  11
  12  s2->pop();
  13
  14  ... ( s2->isEmpty() )
  15
  16  s2->push(...);
  17
  18  s1->pop();
  19
  20}
weiter

weiter

Vergleich: diff.Stack1.Stack4

> class Stack {
>
> protected:
int a[20]; int a[20];
unsigned int topPtr = 0; | unsigned int topPtr ;
> public:
void push(int v) { void push(int v) {
a[topPtr++] = v; a[topPtr++] = v;
} }
int top(void) { int top(void) {
return a[topPtr -1]; return a[topPtr -1];
} }
void pop(void) { void pop(void) {
--topPtr; --topPtr;
} }
int isEmpty(void) { int isEmpty(void) {
return topPtr == 0; return topPtr == 0;
} }
>
> Stack() {
> topPtr = 0;
> }
> };
>
>
weiter

weiter

Vor- und Nachteile

Vorteile
  • ...
  • ...
  • ...
Nachteile
  • ...
  • ...
  • ...

Letzte Änderung: 11.01.2007
© Prof. Dr. Uwe Schmidt
Prof. Dr. Uwe Schmidt FH Wedel