class X { public: void m(int) {} private: void m(double) {} }; int main() { /* X::m(double) ist zwar nicht verwendbar, aber sichtbar * -> Fehler beim Übersetzen * Entfernt man die Deklaration von X::m(double), dann wird X::m(int) * aufgerufen. */ X x; x.m(23.42); }