gpt4 book ai didi

c++ - "Most Important Const"再次

转载 作者:行者123 更新时间:2023-11-28 02:47:36 26 4
gpt4 key购买 nike

遇到了THIS Herb Sutter“又”发表了一篇文章,我开始思考为什么 const 指针不应该同样适用。
下面是测试代码


const char* get()
{
std::string a("something");
return a.substr(1, a.size() - 3).c_str();
}

int main()
{
const char* str = get();
std::cout << str << std::endl;

return 0;
}

标准字符串的 substr返回一个新的字符串对象。用 g++ -Wall 编译也没有给我任何错误。那么这个例子是否也显示了长时间的临时行为,或者我在这里很幸运?

最佳答案

规则规定:
“绑定(bind)到const 引用 的临时对象的生命周期延长到const 的生命周期。”

您的代码示例中没有使用引用,它与 GOTW 代码示例无关。您的代码只是给您未定义的行为。取决于你如何看待它,你可能认为自己幸运/不幸它起作用了。

重要提示:引用不是指针!!

关于c++ - "Most Important Const"再次,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23929418/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com