I have a vector<someclass*> as private member of a class a.
If I delete class a, do I have to do nothing or do I have to delete the vector or even loop through the vector and delete them?
every new must be backed by a delete. So you need to call delete on your vector. Thogh it would be even better to make the vector a real member of the class, not just a pointer. That way you wouldn't need the new, and hence also no delete.
Well, there's even more to this. It depends on a) if you create them with 'new' as well, and b) if this vector is the only place they are referenced from. In case any of the answers is no then you must not call delete. Otherwise you should. At least if I didn't forget any other condition...