Можно ли преобразовывать контейнер STL из базового типа в производный?Например, у меня есть два вектора.Первый относится к типу базового класса, второй - к типу производного класса.
class Base
{
// Code
};
class Derive : public Base
{
// Code
};
Использование
vector<Base*>* vec_base = new vector<Base*>;
// Add some Derive type data to vec_base
vector<Derive*>* vec_derive = (vector<Derive*>*)(vec_base);
// Using elements as Derive pointers. Works fine.
Это нормально?(Это отлично работает, но я хотел получить некоторые комментарии по этому поводу).Большое спасибо.
РЕДАКТИРОВАТЬ: Обновление в соответствии с ответами.
Скажите, если я буду осторожно использовать этот вектор, не буду использовать его с множественным наследованием и не буду вставлять объекты, отличные от типа Derive, это нормально?(Наверное, это не так)
И большое спасибо за ответы.