定义两个类函数是否合法,一个重载了对string
的引用而另一个重载了const char*
?
void funcA(const std::string& s)
void funcA(const char* s)
我可以保证,如果我使用funcA()
输入调用const char*
,它将不会调用字符串函数吗?我问,因为从const char*
到string
有隐式构造。
答案 0 :(得分:4)
是的,这是有效的。如果传递const char*
,则第二个重载是完全匹配,优先于所有其他重载,特别是涉及用户定义转换的重载(例如转换为const std::string
)。