c++ - 来自类的 C++ memcpy 数据?
问题描述
我有一个小问题,如果我有一个有成员的班级,例如这样
class CSelectPlayerData : public SqlQuery
{
public:
BYTE m_Member;
WORD m_Member2;
Load_Data(CSelectPlayerData, "SELECT Member, Member2 FROM TABLE);
MAKE_PARAM(m_Member, m_Member2);
}
这段代码的作用是从 sql 表中加载数据,并将它们分配给 Member 和 Member2。我现在的问题是,如果我使用查询,并执行以下操作:
INIT_QUERY(db, CSelectPlayerData) //this also executes the LoadData etc (it's macro)
pPlayer->m_Member = query->m_Member;
...
然后创建一个单独的类,CPlayer
CPlayer Player;
它具有相同的参数(Member,Member2),我可以以某种方式将查询类中的值 memcpy 到播放器,所以我不必这样做
pPlayer->m_... = query->m_...
我知道它并没有那么有用,但这只是为了我的额外知识。感谢您的回答。
解决方案
memcpy 在任何具有 std::is_trivially_copyable 特性的类型上都是安全的。
然而,许多类并不是可简单复制的,在这种情况下,您应该使用复制构造函数。
推荐阅读
- c# - 当我尝试在 Xamarin 中启动模拟器时,我收到“构建已取消”消息
- c# - 在没有模拟实现的情况下调用 Moq 验证方法
- python - MySQL 从 python 插入/更新,数据来自 excel 电子表格
- python - Python:将多行随机插入 3D numpy 数组
- android - 如何为 Worker 排队任务(WorkerManager API)?
- c - UNIX V6 进程交换时间
- c# - GroupCollection.First 在 netcoreapp 中构建,但不在 netstandard 中
- xpages - 将文件上传控制限制为仅一个文件
- sql - 如果第一个查询运行不适合参数,您如何获得 3 个联合查询以忽略第一个查询
- sql-server - Export data from Microsoft SQL Server using a query to target data