【发布时间】:2019-10-23 05:09:07
【问题描述】:
让我们假设我有一个函数,它期望参数是一个字符串(非 const)。但正如我们所知,字符串文字本质上是 const 。有什么方法可以将字符串文字传递给期望非常量的函数。 我知道这会导致错误,因为文字本质上是 const,但函数需要非 const。任何方式来转换这个函数都可以工作。 听说有 const_cast 。可以用吗?
void str(string &s); // my function which is expecting a non const string
// main . i want to do something like this
str("Blah"); // error
void str(string s) // it works fine ? why ?
【问题讨论】:
-
“文字本质上是 const,但函数期待非 const。”。请注意,类型也不同。
const char[5]与std::string&。临时std::string可以从"Blah"创建,但临时不绑定到非 const (lvalue-)reference。
标签: c++ string function constants