gpt4 book ai didi

c++ - 用memcpy复制一个class对象是对的吗?

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

<分区>

class SomeClass
{
public:
int SomeFunc();
virtual void DoSomeThing();
void Copy(MyContainer* container)
{
//Is this line OK?
//why not memcpy(container->data, this, sizeof(SomeClass) ?
memcpy(&container->data, this, sizeof(SomeClass));
}

SomeClass* GetFromCopy(MyContainer* container)
{
//And this ?
return (KLunaBase*)&container->pData;
}

void Test()
{
MyContainer* cont = NULL;
container = malloc(sizeof(cont) - sizeof(cont->data) + size);
Copy(cont);
}

private:
int a;
int b;
SomeOtherClass objA;
}

struct MyContainer
{
const void* data;
}

我看过一些历史代码,上面简化了,函数CopyGetFromCopy我看不懂。我知道 POD 类可以复制,但是如果该类有虚函数和引用成员对象怎么办?

抱歉我的英语不好。

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