in Java: abstrakte Klasse mit ausschließlich abstrakten (= pure virtual) Methoden heißt interface.
dafür gibt es in C++ keine syntaktische Unterstützung.
das ist sehr schade, besonders beim Arbeiten mit templates (generics):
template <class It>
// <class It implements Bidirectional>
void reverse (It begin, It end) { ... }