In C++ ist potentielle Mehrdeutigkeit nicht verboten (siehe Mehrfachvererbung). Nur die Verwendung mehrdeutiger Konstrukte führt zu Fehlern.
Man braucht keine Klassen, um potentielle mehrdeutige Programme zu schreiben:
void h(char c);
void h(int i);
...
h(3.14);
Compiler:
error: ambiguous call: h ( double )
choice of h()s:
h(char );
h(int );
Compilation failed