class Joe {
};
class A {
public:
virtual void do_nothing(int x){};
};
class B : public A {
public:
void do_nothing(Joe &x) {};
};
class C : public B {
public:
void do_nothing(int x) {};
};
using namespace std;
int main(int argc, char *argv[])
{
Joe i_am_joe;
C i_am_c;
i_am_c.do_nothing(i_am_joe);
cout << "Hello, from Win32!" << endl;
return EXIT_SUCCESS;
}