作者热门文章
- iOS/Objective-C 元类和类别
- objective-c - -1001 错误,当 NSURLSession 通过 httpproxy 和/etc/hosts
- java - 使用网络类获取 url 地址
- ios - 推送通知中不播放声音
如果我有一个包含指向另一个类 Vehicle 的指针数组的类:
class List {
public:
//stuff goes here
private:
Vehicle ** vehicles;
}
如果我现在编写 List
类的析构函数,我是否手动遍历数组(我知道数组中有多少项)并删除
每个指针到车辆,还是 C++ 会自动调用数组中所有车辆的析构函数?
(如果类中有一个私有(private)字符串/...,或者如果它是 Vehicle 指针的 STL 容器,就像它所做的那样)
编辑:我忘记了 delete [] vehicles
,但如果我这样做,它会同时删除数组中所有车辆使用的内存,还是只删除指针使用的内存?
最佳答案
您必须删除数组中的所有条目并删除数组。C++ (STL) 中有一些方法可以避免这种情况:使用 vector ,这样您就不必删除数组。对每辆车使用 scoped_ptr/shared_ptr,因此您不必删除车辆。
关于c++ - 具有指针数组 C++ 的类的析构函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4748669/
我是一名优秀的程序员,十分优秀!