Уважаемые гуру! Посоветуйте, пожалуйста как справится со следующей проблемой.
Написал класс CBASEMain. В нём есть виртуальная функция Virt(int q), которая переопределяется в наследуемых классах (их 5 штук).
В программе объявляю глобальный массив объектов СBASE *fff[100]; (глобальный, потому что мне надо иметь доступ к нему из разных функций...).
Итак, при нажатии на кнопку, вызывается функция OnButtonAdd(), в которой происходит :
fff[i++]= new <класс-наследник (их 5 штук) от CBASE>, т.е. при каждом нажатии на кнопку Add создаётся объект.
Далее, в OnButtonAdd(), запускается таймер (один для всех объектов), событие которого вызывает функцию My(), в теле которой есть вызов в цикле fff[i]->Virt(int q), т.е. вызов нужной версии виртуальной функции Virt(int q),
и при определённых условиях, в My() нужно бы было вызвать что-то типа delete fff[2], т.е. удалить один объект из массива объектов. Но так как массив объектов я объявил глобальным — это ведёт к завершению программы. Можно ли как-то это исправить ? А как сделать чтобы он был не глобальным я не знаю. Т.е. этот массив объектов должен быть доступен функциям OnButtonAdd() и My()?