STL 容器非常优秀。它们提供了前向和逆向遍历的迭代器(通过 begin、end、rbegin等);它们能告诉你所容纳的对象的类型(通过 value_type 和 typedef);在插入和删除中,它们负责任何需要的内存管理;它们报告容纳了多少对象和最多容纳的数量(分别通过 size 和 max_size);而且当容器自己被销毁时会自动销毁容纳的每个对象。
但是,当容器容纳的是指向通过 new 分配的对象的指针时,它们就错了,因为销毁对象时,指针的析构函数无操作,不会调用 delete
Tip: 从没有虚拟析构函数的类公有继承是一个大的C++禁忌