gpt4 book ai didi

c++ - 共享指针声明

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

我正在修改我的代码以包含共享指针而不是原始指针。以下声明是否有效?

for(//some loop//){

std::shared_ptr<foo> tmp;
/..do stuff to tmp../
vectorofpointer.push_back(tmp);

此外,一旦 tmp 超出范围,这会影响我的 vector 吗?

最佳答案

是的,没关系。

参见 http://en.cppreference.com/w/cpp/memory/shared_ptr/shared_ptr :

1) Default constructor constructs a shared_ptr with no managed object, i.e. empty shared_ptr

另见 http://en.cppreference.com/w/cpp/memory/shared_ptr :

A shared_ptr may also own no objects, in which case it is called empty […]

如果您的 vector 包含 shared_ptr 元素,您仍然可以在 tmp 超出范围后访问指向的对象,因为引用计数使对象保持事件状态。

关于c++ - 共享指针声明,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31031174/

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