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