【发布时间】:2026-01-18 16:30:01
【问题描述】:
这是一个代表我的概念问题的程序:
int main()
{
unique_ptr<int> a = make_unique(5);
{
unique_ptr<int>& b = a;
}
printf("%d",*a);
}
-
a是对象的所有者吗? - 当
a超出范围时,somepointer 的值是否会被销毁?
通过运行上面的代码,我发现它没有,但我不明白为什么。作业中究竟发生了什么?
【问题讨论】:
-
a在打印它的 ponitee 时并没有超出范围(很明显,您可以命名它)。你为什么认为会有问题? -
这段代码中没有赋值,只有一个初始化并将一个变量绑定到一个引用。您希望参考
b做什么? -
你知道引用
&是如何工作的吗? -
在你的第二个项目符号中,你不是指
b和a吗?
标签: c++ reference smart-pointers destroy