来自类的C ++ memcpy数据?

时间:2018-06-17 10:11:18

标签: c++

我有一个小问题,如果我有一个有成员的班级,例如像这样

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),我可以以某种方式将查询类的值存储到播放器中,所以我不必这样做

pPlayer->m_... = query->m_...

我知道它不是那么有用,但它只是为了我的额外知识。谢谢你的回答。

1 个答案:

答案 0 :(得分:2)

对任何具有特征std :: is_trivially_copyable的类型,memcpy都是安全的。

然而,在这种情况下,您应该使用复制构造函数。