2

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);
4

1 に答える 1