如何解决复制构造函数在C ++中对memcpy有帮助吗?
我正在使用基于C ++的框架,该框架基于重写规则。各个重写规则由像我这样的开发人员编码。可以使用任何类型的变量定义重写规则界面中的参数。该框架似乎要做的是在应用重写规则时将memcpy应用于所有参数。
现在,我将C ++对象的实例(对多个抽象类的继承有些复杂)用作重写规则的参数。 毫不奇怪,memcpy仅部分成功,并且在应用重写规则之后,我对象的许多成员被弄乱了。特别是,指针,地图和矢量成员被弄乱了。
根据我的阅读,我了解到memcpy是一种相当低级的复制机制。 我想知道是否有什么办法可以解决memcpy期间发生的混乱情况? 例如,如果我为所有类定义了复制构造函数-memcpy是否可以使用它们? 抱歉,这是一个愚蠢的问题。
(如果无法使memcpy用于复杂实例,那么我会得出结论,我一直在使用的框架不适合传递对象)
解决方法
从src指向的对象到dest指向的对象的副本计数字节。这两个对象都重新解释为无符号字符数组。
memcpy
复制字节。它不知道它实际复制了什么。
... memcpy可以利用它们吗?
否。
PS
一个框架使用memcpy复制C ++对象听起来很奇怪,因为除了某些特殊情况(参见std::is_trivially_copyable)以外,这是错误的。也许您误会了一些东西。没有太多背景可以提供进一步的建议
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。