Здраствуйте. Помогите разобраться со следующим вопросом:
Имеет место быть такая конструкция:
//...
template <TObject>
class foo{
//...
static std::deque<TObject> TObjectMas;
public:
foo(){}
~foo(){
// что то делаем
}
};
//...
template<> std::deque<TSerialObject * > foo<TSerialObject> TObjectMas;
//....
// где-то в программе
class client{
//...
foo<TSerialOblect * > f;
public:
client(){}
~client(){}
};
//...
При инициализации главной формы (проект на C++ Builder) в её конструкторе
делаем так:
client * c=new client;
Вопрос: Почему при закрытии приложения когда мы добираемся до деструктора
foo::~foo(){} деструктор ~deque уже был вызван и удалил очередь вместе со всем содержимым?
Заранее благодарен за ответы(любые) и извините за сумбурное изложение.