c++ - 将字符串文字传递给期望字符串的函数
问题描述
让我们假设我有一个函数,它期望参数是一个字符串(非 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 引用,则临时对象的生命周期将延长到函数结束。
推荐阅读
- javascript - Cronjob 没有正确运行我的脚本
- javascript - 编写一个替代 String.prototype.replace() 的函数
- css - Firefox:第一次悬停闪烁
- node.js - 如何获取和存储客户端平台(操作系统和浏览器类型以及版本)、设备位置以及日期和时间
- android - Android 适配器在滚动时抛出 IndexOutOfBoundsException
- wpf - WPF 绑定到我的 DataContext 中的值
- docker - 用于运行二进制文件的多个 ENTRYPOINT
- javascript - 单击动态按钮后未显示信息(使用切换)
- c - 2D char 数组或 1D 数组到 char 指针哪个更快?
- mysql - 分离多个数据库使用的查找表