带有指针数组C++的类的析构函数

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,但如果我这样做,它还会删除数组中所有车辆使用的内存,还是只删除指针使用的内存?

ste*_*anv 7

您必须删除阵列中的所有条目并删除该阵列.C++(STL)中有一些方法可以避免这种情况:使用向量,因此您不必删除数组.每辆车使用scoped_ptr/shared_ptr,因此您不必删除车辆.