gpt4 book ai didi

c++ - 是否有内置深层复制功能的作用域指针?

转载 作者:行者123 更新时间:2023-11-28 00:01:31 25 4
gpt4 key购买 nike

据我了解,如果我有一个类有一个 boost::scoped_ptr 成员变量,并且如果我要复制该类的一个实例并希望新实例的 scoped_ptr 成员指向一个拷贝第一个实例指向的是什么,我将不得不实现一个自定义复制构造函数(和赋值运算符)并明确地对 scoped_ptr 指向的任何内容进行深度复制。如果智能指针类型有一个自己执行此操作的复制构造函数,那就太好了。

C++ boost/STL库中是否没有类似的智能指针已经内置了深度复制功能,以便在复制智能指针时它指向的对象也被复制?至少作为一种选择?

(如果有这样一个指针,在我的例子中,指针必须更多地了解它应该如何创建新对象,因为我指向的对象属于多态类,具有虚拟 Clone() 函数。如果智能指针无法隐式地弄清楚如何进行深度复制,客户端代码可能已经提供了一个函数指针或指向克隆函数的东西,或者应该使用的任何工厂创建函数。我猜这个新对象如何创建的复杂性可能是没有指针毕竟具有深度复制功能的原因之一..?)

最佳答案

据我所知,标准库中没有智能指针实现你想要的语义。

然而,MNMLSTC core库提供 - 除其他外 - 应该适合您的用例的两个智能指针(即 core::poly_ptrcore::deep_ptr )。特别是,由于虚拟成员函数的存在,我相信core::poly_ptr是你需要的。

关于c++ - 是否有内置深层复制功能的作用域指针?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38604794/

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