我在 C++ 中遇到了多态数组的问题。我有:
ClassBase **ptr_array = new Base*[dimension];
但是当我尝试这样做时:
ptr_array[0]=new ChildClass;
*ptr_array[0]=ChildIWantToCopy;
它只复制 ClassBase 的属性。
有任何想法吗?提前致谢
编辑:非常感谢,不幸的是我不能使用引用,因为不知何故我的数组变得疯狂并且只使用数组的第一个位置,无论如何。我会继续研究它。再次感谢
编辑2:
当我尝试这样做时
ptr_array[0]=&ChildIWantToCopy;
不知何故,我的数组变得疯狂,它总是在第一个位置复制。事实上,如果孩子在分配任何东西之前已经在其中,我会检查整个数组,即使它不在数组中,它也会说它是并复制孩子,(不应该,因为如果孩子在里面,我会做它避免了分配)。这真让我抓狂。
EDIT3:赋值运算符的声明:类基客户端:
virtual void operator=(Cliente const &cliente);
ChildClass 人:
void operator=(Persona const &persona);
童班公司:
void operator=(Empresa const &empresa);