【发布时间】:2021-10-03 15:15:26
【问题描述】:
int main() {
std::deque<My_Int*> table;
My_Int* table_entry = new My_Int(2);
table.push_back (table_entry);
My_Int** new_obj = &table.front();
*new_obj = new My_Int(3);
std::cout << table.front()->data << std::endl; // prints 3 as intended
}
我主要对带有双指针的行感到困惑。我将如何使用智能指针复制它?谢谢你的帮助。 (我知道代码没有正确清理)
编辑:为了澄清起见,使用智能指针时的双端队列也是 shared_pointers 的双端队列。
【问题讨论】:
-
如果代码使用更简单的
My_Int*& new_obj = table.front();,您知道如何将其更改为std::shared_ptr吗? -
无关:请记住,在 C++ 中,您不必使用
new对象。您可以避免使用std::deque<My_Int> table;和table.emplace_back (2);的间接级别
标签: c++ smart-pointers