gpt4 book ai didi

c++ - shared_ptr 赋值符号隐式转换

转载 作者:太空狗 更新时间:2023-10-29 20:22:30 26 4
gpt4 key购买 nike

考虑以下代码,为什么我不能使用这里的赋值符号,为什么认为是隐式转换。

shared_ptr<string> pNico = new string("nico"); // ERROR implicit conversion
shared_ptr<string> pNico{new string("nico")}; // OK

最佳答案

构造函数是明确的,以防止有人做这样的事情:

void foo(std::shared_ptr<std::string> s) { }

int main()
{
std::string s;
foo(&s);
}

如果它是隐式的,shared_ptr 可以获取堆栈分配变量的所有权并尝试删除它..这是没有意义的。

关于c++ - shared_ptr 赋值符号隐式转换,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37490139/

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