如果它们共享相同的基类,是否有办法将指向派生对象的指针更改为指向不同类型的派生对象?我知道它可以使用基类指针,但我有点卡在我目前的情况下。
示例:
struct a {};
struct b : a {};
struct c : a {};
int main()
{
b* ptr = new b;
ptr = new c;
}
答案 0 :(得分:0)
没有。 (如果你把Apple当作橙色,那么不允许并且明显会导致更多问题)
你可能是C ++的新手。
想象一下,你的
中有一个变量struct b:a {int x; };
并且
struct c:a {}; 没有像你的示例代码那样的变量。
使用b的ptr作为c(如果你通过施法绕过compilor错误) 您将尝试访问c中不存在的变量x。