在C++11中,将const char*
转换为std::string
类型的形参可以通过以下方法实现,均基于隐式或显式调用std::string
的构造函数完成:
1. 隐式转换(直接传递)
std::string
的构造函数支持从const char*
隐式构造字符串对象,因此在函数调用时可直接传递const char*
参数,编译器会自动完成转换。
示例:
void func(const std::string& param); // 函数声明
const char* c_str = "example";
func(c_str); // 自动调用std::string的构造函数
原理:std::string
的构造函数接受const char*
参数,生成一个新的字符串对象,并管理其内存生命周期124。