您好,我在将派生类型对象存储在基本类型的二维数组中而不丢失存储在数组中的派生类型时遇到了一个小问题。
例如,有以下 Base 和 Derived 类:
class Base{
}
class Derived: public Base{
}
有一点我创建了一个 Base 对象,如下所示:
Base objectB;
然后我将上面的对象转换为 Derived 类的类型,如下所示:
Base *referencePointer = &objectB;
Derived *derivedPointer = static_cast<Derived*>(referencePointer);
此时一切正常(如果我打印出 derivedPointer 的类型,它是 Derived 类型)。
现在我有一个基类类型的二维数组,初始化如下:
Base *baseArray[5][5];
现在我将 derivedPointer 值输入到数组中,如下所示:
baseArray[x][y] = derivedPointer;
这就是问题发生的地方,因为它存储在 referencePointer 中,但它变成了 Base 类型(对象切片),我不确定如何存储 referencePointer 值并将其类型保存在 Base 类型的数组中。
任何帮助深表感谢,
谢谢!