method hiding in C++
``` #include<iostream> using namespace std; class Base { public: int fun() { cout << "Base::fun() called"; } int fun(int i) { cout << "Base::fun(int) called"; } }; class Derived: public Base { public: int fun(char c) { cout << "Derived::fun(char) called"; } }; int main() { Derived d; d.fun(); // cannot compile return 0; } ```