将派生指针分配给C 中的其他派生类型

Assign Derived Pointer to a Different Derived Type in C++

本文关键字:派生 其他 类型 指针 分配      更新时间:2023-10-16

是否有一种方法可以将指针更改为派生对象,以指向不同类型的派生对象,如果它们共享同一基类?我了解它可以与基类指针一起使用,但是我在当前情况下有些困扰。

示例:

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

no。(如果您将苹果施放为橙色,则不允许并清楚地导致更多问题(

您也许是C 的新手。

想象一下您的变量

struct b:a {int x;};

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

通过将B的PTR用作C(如果您通过铸造来解决编译器错误(您将尝试访问不存在的变量x