Geschichte: C++

ab 198?: Bjarne Stroustrup: erweitert C um Klassen, dann virtuelle Funktionen (= vereinfachte Syntax für Benutzung von Funktionen in structs)

Objekt:
struct stack {
  int s [SIZE];
  int top;
  struct stack_vtable 
     * vtable;
};
(virtuelle) Klasse:
struct stack_vtable {
  void (* push) 
       (struct stack *, int);
  int  (* pop ) 
       (struct stack *);
};
Methoden-Implementierung:

void stack_push (struct stack * this, int c) 
  {  ( this->s ) [ ( this->top )++ ] = c; }
Methoden-Aufruf (st.push (i);)
  st -> vtable -> push (st, i);

versucht ansonsten strenge Abwärts-Kompatibilität zu C (Quelltext und Objekt-Code!)

Das ist einerseits Grund für weiter Verbreitung der Sprache, andererseits eine schwere Einschränkung.



Johannes Waldmann 2004-11-30