在C ++中将派生指针分配给不同的派生类型

时间:2018-02-24 22:42:16

标签: c++ class oop pointers inheritance

如果它们共享相同的基类,是否有办法将指向派生对象的指针更改为指向不同类型的派生对象?我知道它可以使用基类指针,但我有点卡在我目前的情况下。

示例:

struct a {};
struct b : a {};
struct c : a {};

int main()
{
  b* ptr = new b;
  ptr = new c;
}

1 个答案:

答案 0 :(得分:0)

没有。 (如果你把Apple当作橙色,那么不允许并且明显会导致更多问题)

你可能是C ++的新手。

想象一下,你的

中有一个变量

struct b:a {int x; };

并且

struct c:a {}; 没有像你的示例代码那样的变量。

使用b的ptr作为c(如果你通过施法绕过compilor错误) 您将尝试访问c中不存在的变量x。