字符串引用和常量字符指针的函数重载
Function overloading for string reference and const char pointer
定义两个类函数是否合法,一个重载引用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
)的重载。
相关文章:
- 为什么使用SFINAE而不是函数重载
- 为什么我不能在 C++ 中的特定函数重载中调用同一函数的任何其他重载?
- c++:可变模板和函数重载
- 在缺少函数重载时抛出异常,并带有 std::variant 而不是编译时错误
- 解决模板成员函数重载
- 为什么不允许成员函数和非成员函数之间的函数重载?
- 推断模板化函数中的函数重载
- C++复制函数重载导致"must be a nonstatic member function"错误
- 为什么 std::sort 找不到合适的(静态成员)函数重载?
- 可变参数泛型 lambda 和函数重载
- C++中的函数重载和继承
- 当有右值构造函数可用时,为什么从右值调用类引用构造函数重载?
- C/C++ 可变参数宏函数重载
- 将基类的成员函数重载到其他派生类C++
- C++ 函数重载匹配
- C++函数重载,具体步骤是什么
- C++:使用 param pack 显式调用函数重载
- 隐式生成的函数重载用于右值参数?
- 使用函数重载输入运算符
- 运算符重载函数上的函数重载