CAD开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

AutoCAD 2024 开发者帮助

深度克隆基础知识

2024-5-18 19:12| 发布者: admin| 查看: 115| 评论: 0|原作者: admin|来自: AutoCAD

深度克隆基础知识

深度克隆函数复制对象及其所有权引用。任何指针引用都将被忽略。wblock clone 函数复制硬所有者和硬指针,并忽略软引用。除了复制所拥有对象的层次结构之外,深度克隆函数和 wblock 克隆函数还处理克隆对象的引用,并在必要时将引用转换为指向新对象。

若要启动克隆操作,请使用以下函数之一:

AcDbDatabase::deepCloneObjects()
AcDbDatabase::wblock()
AcDbDatabase::insert()

AcDbDatabase::deepCloneObjects()仅支持在单个数据库内进行克隆。如果需要在数据库之间克隆对象,请使用、 或两者的组合(例如,克隆到临时数据库,然后将该数据库克隆到现有目标数据库)。wblock()insert()wblock()insert()

使用 时,仅插入到已构建的目标数据库。通过使用当前图形生成构造函数参数为 的新数据库,或者使用构造函数参数 创建空的新数据库,然后调用该数据库来填充该数据库,可以获取完全构建(并且可能已完全填充)的目标数据库。AcDbDatabase::insert()Adesk::kTrueAdesk::kFalseAcDbDatabase::readDwgFile()

一般来说,要使用 ,AcDbDatabase::deepCloneObjects()

AcDbDatabase::wblock(),或代码中的函数,则无需了解对象 ID 映射的填充方式,也无需了解深度克隆的每个阶段所发生的情况。如果要创建一个新类,并且想要覆盖 或AcDbDatabase::insert()AcDbObject::deepClone()

AcDbObject::wblockClone()函数,您需要熟悉这些函数的详细信息,这些函数在为自定义类实现 deepClone() 中进行了描述。

不应直接在应用程序代码中的自定义对象上调用 and 函数。它们仅作为更高级别克隆操作的链的一部分被调用。AcDbObject::deepClone()AcDbObject::wblockClone()

父主题:

  1. 深度克隆

路过

雷人

握手

鲜花

鸡蛋

最新评论

QQ|Archiver|CAD开发者社区 ( 苏ICP备2022047690号-1   苏公网安备32011402011833)

GMT+8, 2025-1-19 06:52

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

返回顶部