gpt4 book ai didi

c++ - 基类指针不能赋值给派生类指针的原因

转载 作者:塔克拉玛干 更新时间:2023-11-03 07:20:14 24 4
gpt4 key购买 nike

能解释一下为什么基类指针不能赋值给派生类指针吗?我知道这是不可能的,但我想知道原因。逻辑派生类包含基类。让我知道原因提前致谢

最佳答案

考虑:

struct A
{
};

struct B : A
{
int b;
};

struct c : A
{
char c;
};

C cobj;
A* aptr = &cobj;
B* bptr = aptr; // Assuming this were allowed...
bptr->b = 10;

如果这样做,您将使用超出有效范围的内存。您已经创建了一个大小为 sizeof(C) 的对象,但您并未将其视为大小为 sizeof(B) 的对象。

关于c++ - 基类指针不能赋值给派生类指针的原因,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27371867/

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