字符串引用和常量字符指针的函数重载

Function overloading for string reference and const char pointer

本文关键字:函数 重载 指针 字符 引用 常量 字符串      更新时间:2023-10-16

定义两个类函数是否合法,一个重载引用string,另一个重载const char*

void funcA(const std::string& s)
void funcA(const char* s)

我能保证如果我使用 const char* 输入调用 funcA(),它不会调用字符串函数吗?我问是因为从const char*string有一个隐式结构.

是的,它是有效的。如果传递const char*,则第二个重载是完全匹配的,它优先于所有其他重载,尤其是涉及用户定义转换(例如转换为const std::string)的重载。