В чем суть, есть вектор указателей на базовый класс std::vector Mas;
вот так он заполняется
void __fastcall TForm2::Button1Click(TObject *Sender)
{
String name=Edit2->Text;
if (RadioGroup2->ItemIndex==0) {
CPointIndic *tmp =new CPointIndic;
tmp->setName(name);
Mas.push_back(tmp);
Form1->updateList(Form1->List);
}
if (RadioGroup2->ItemIndex==1) {
CMenuIndic *tmp =new CMenuIndic;
tmp->setName(name);
Mas.push_back(tmp);
Form1->updateList(Form1->List);
}
if (RadioGroup2->ItemIndex==2) {
CCircleIndic *tmp =new CCircleIndic;
tmp->setName(name);
Mas.push_back(tmp);
Form1->updateList(Form1->List);
}
Close();
}
теперь нужно, изменять типы объектов
вот так я его меняю, но он не хочет компилироваться, помогите разобраться с этим механизмом
int index = List->ItemIndex;
if (index>=0) {
String name = Mas[index]->getName();
int n = StrToInt(InputBox("","",""));
switch(n)
{
case 1 :
delete Mas[index];
CPointIndic *tmp = new CPointIndic;
Mas.insert(index+1,tmp);
break;
}
}
}