所以我有一个类层次结构,它本质上将Entity
类作为父抽象类和一堆从它派生的其他类,例如Door
, Player
,Ground
等。
vector
我还有一个存储指向类型对象的指针的三维空间,并用派生对象Entity
填充它。vector
在Door
类中,我有一个名为的方法isOpen()
,它只返回一个bool
. 这个函数是特定于Door
类的,既不在Entity
类中,也不在它的任何其他派生中(因为我不需要检查,例如,一个Ground
对象是否打开)。
Door
现在,知道在vector
位置i
,存在一个类型的对象j
,k
我想像这样调用该方法isOpen
:vector[i][j][k]->isOpen()
不幸的是,当我这样做时,编译器返回class Entity has no member named isOpen()
. 这是可以理解的,因为该函数isOpen()
是该类独有的Door
,但是我该怎么做才能使这种调用成为可能?