C++ 的函数重载决议规则是所有语言中最复杂的,因为他允许用户以两种方式自定义隐式类型转换。
比如有下面两个函数:
Employee* findEmployee(const std::string& surname, const std::string& givenName, bool retired = false); Employee* findEmployee(const std::string& fullName, bool retired = false);
那么
Employee* e = findEmployee("Chen", "Shuo");
对应哪个?
如果原来代码里只有第一个函数,现在有人新增了第二个重载,会造成什么后果?