ofa -> Var den til mig ?
Altså :
Abstrakte klasser og funktioner
I C++ har vi også mulighed for at lave abstrakte klasser og funktioner. Som i Java bliver en klasse abstrakt ved at en eller flere af dens funktioner er abstrakte. I Java er der også den mulighed at man direkte kan erklære en klasse abstrakt, selvom den ikke indeholder abstrakte funktioner, for at forhindre instantiering. I C++ har man ikke den sidstnævnte mulighed. Klasser i C++ bliver kun abstrakte på grundlag af, at en eller flere af dens funktioner er abstrakte, og man skal ikke eksplicit bekræfte at klassen skal være abstrakt, ved at skrive abstract i starten af erklæringen - i C++ erklæres en klasse implicit abstrakt i kraft af dens funktioner.
Abstrakte funktioner vil i sagens natur altid være virtuelle - man kalder dem: virtual pure. Syntaksen er meget enkel. Til gengæld er der enighed over hele linien - syntaksen er grim! Lad os se et eksempel:
Kode class A {
virtual int f( int x ) = 0;
} |
Man erklærer her at funktionen ikke har nogen implementation - at den er nul! Rygtet vil vide at det udvalg der skal godkende ændringer til C++ ikke ville acceptere endnu et reserveret ord, og derfor valgte man ovenstående notation som det mindste onde - men som sagt ... argh!
</MOLOKYLE>