C++ の多形配列に問題があります。私は持っている:
ClassBase **ptr_array = new Base*[dimension];
しかし、私がやろうとすると:
ptr_array[0]=new ChildClass;
*ptr_array[0]=ChildIWantToCopy;
ClassBase の属性のみをコピーします。
何か案は?前もって感謝します
編集:どうもありがとうございました。残念ながら、参照を使用できません。なぜなら、どういうわけか私の配列が狂ってしまい、何があっても配列の最初の位置しか使用しないからです。その中で研究を続けます。再度、感謝します
EDIT2:
こうしようとしたら
ptr_array[0]=&ChildIWantToCopy;
どういうわけか私の配列はおかしくなり、常に最初の位置にコピーされます。実際、何かを割り当てる前に、子が既にその中にある場合に備えて、配列全体をチェックします。配列にない場合でも、そうであると言って子をコピーします(これはすべきではありません。子が内部にある場合、私は割り当てを回避します)。これは私を夢中にさせています。
EDIT3: 代入演算子の宣言: クラス ベース クライアント:
virtual void operator=(Cliente const &cliente);
子クラスの人:
void operator=(Persona const &persona);
チャイルドクラスの会社:
void operator=(Empresa const &empresa);