If you want to make use of polymorphism, then yes, though you should prefer a vector of smart pointers, or a Boost ptr_vector instead.