gpt4 book ai didi

c++ - 关于 C++ 中类型一致性的问题?

转载 作者:塔克拉玛干 更新时间:2023-11-02 23:54:31 24 4
gpt4 key购买 nike

我正在阅读一些 C++ 文本并获得以下代码:

class A { };
class B : public A { };

void main() {
A* p1 = new B; // B may be larger than A :OK [Line 1]
B* p2 = new A; // B may be larger than A :Not OK [Line 2]
}

我有两个问题:

  1. 我不明白作者在第 1 行和第 2 行评论的意思
  2. 为什么我们不能在 2 号线做?

最佳答案

好吧,“更大”并不是这里的关键。真正的问题是"is"关系。

B 类 的任何对象也是A 类 类型(B 类 也是A 类 由于继承),所以第一行没问题(指向 class A 的指针也可以指向 class B 的对象),但反之则不然( class A 不是 class B,甚至可能不知道 class B 存在),所以第二行不会编译。

关于c++ - 关于 C++ 中类型一致性的问题?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6608366/

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