Aer*_*rus 4 c++ arrays destructor delete-operator
如果我有一个带有指向另一个类Vehicle的指针数组的类:
class List {
public:
//stuff goes here
private:
Vehicle ** vehicles;
}
Run Code Online (Sandbox Code Playgroud)
如果我现在编写类的析构函数List,我是否手动迭代数组(我知道数组中有多少项)和delete每个指向车辆的指针,或者C++会自动调用数组中所有Vehicle的析构函数吗?
(就像它在类中有一个私有字符串/ ...或者它是一个STL容器的Vehicle指针一样)
编辑:我忘了delete [] vehicles,但如果我这样做,它还会删除数组中所有车辆使用的内存,还是只删除指针使用的内存?
您必须删除阵列中的所有条目并删除该阵列.C++(STL)中有一些方法可以避免这种情况:使用向量,因此您不必删除数组.每辆车使用scoped_ptr/shared_ptr,因此您不必删除车辆.