我在将子指针分配给父指针时遇到问题。这是示例:
class A() {};
class B() : public A {};
class C() {
B* b;
C() { b = new B(); }
B* GetB() { return b; }
}
C* c = new C();
A* a = c->GetB(); //compilation error
为什么会这样?如果我写这个:
A* a = (A*)c->GetB();
然后它可以工作,但我想知道为什么会这样。
这只是一个例子,我不能透露真实的代码,所以如果你发现语法错误,那是因为我刚刚写了它。谢谢!
编辑:我的编辑告诉我:“B* 类型的值不能分配给 A* 类型的实体”。这是什么意思?