Abstrakte Datentypen in C++ sind Klassen mit virtuellen Funktionen ohne implementierung. zB:
class Foo
{
public:
virtual int bar ( ) = 0;
virtual void baz ( ) = 0;
};
Man könnte es mit interfaces in Java vergleichen. Leitet eine neue Klasse von der
abstrakten Klasse ab, ist sie gezwungen alle "pure virtual" funktionen zu implementieren.
So kann ein Programmierer ein Interface für zB Plugins definieren.
Desweiteren ist es nicht möglich einen abstrakten Datentyp zu instanziieren (eine Variable zu erstellen).