gpt4 book ai didi

c++ - 为什么不能用 memcpy 复制非 POD 对象?

转载 作者:太空宇宙 更新时间:2023-11-04 15:02:23 26 4
gpt4 key购买 nike

<分区>

根据我阅读的各种来源,以下 C++ 代码调用了未定义的行为:

class A {
public:
virtual void method () {
std::cout << "Hello" << std::endl;
}
};

...
A *a, *b;
// obtain 2 Instances from somewhere, then...
memcpy (a, b, sizeof(A));
a->method();

为什么这会导致未定义的行为?我看不出语言的逻辑实现不符合预期(在两个对象具有相同的运行时类型的情况下),那么为什么语言设计者选择将其设为未定义?

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