gpt4 book ai didi

c++ - 具有指针数组 C++ 的类的析构函数

转载 作者:塔克拉玛干 更新时间:2023-11-03 01:08:34 26 4
gpt4 key购买 nike

如果我有一个包含指向另一个类 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/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com