首页 > 解决方案 > 数组的多态性

问题描述

我将尝试快速解释问题。我有一个这样的基类:

class ArrayEntry
{

}

class BaseClass
{
    ArrayEntry[] m_Array;
}

这两个是基类。所以在此之后,我有这两个类:

class ClassA : BaseClass
{

}

class ClassAEntry : ArrayEntry
{

}

我会用 ClassAEntry 填充 m_Array 但如果我想这样调用:

ClassA classA = new ClassA();
for (ClassAEntry entry : classA.m_Array) 
...

我会得到一个错误。所以每次我想访问一个数组时,我都必须转换条目。

for (ArrayEntry entry : classA.m_Array)
{
ClassAEntry castedEntry = (ClassAEntry)entry;
..
}

我不想对 100 种不同的方法使用强制转换,只是为了能够为每个调用使用 a。

有没有更优雅的解决方案?

标签: c++polymorphism

解决方案


推荐阅读