struct Socket { virtual int Bind () { return -1; } virtual int Bind (int address) { return address; } }; struct UdpSocket : public Socket { virtual int Bind () { return 0; } }; int main(void) { UdpSocket sock; sock.Bind (123); }