c++ - 指向具有指针成员的对象的指针数组的析构函数
问题描述
我有一个指向对象的指针数组。对象本身有一个指针成员。
- 当我编写析构函数时,指针数组是否也会破坏成员指针?
- 当对象被删除而不是旧样式的 for 循环时,在析构函数中循环一个范围 for 循环是否安全?
这是具有指向对象的数组的类。
class Graph {
EdgeNode* edges[MAX_VERTICES] = { nullptr };
public:
Graph() {};
~Graph() {
for (EdgeNode* edge : edges) { //Is it safe to loop like this versus a foor loop as objects getting deleted?
delete edge;//Does it also delete the edge->next ???
}
}
};
这是上面的 Graph 类中维护数组的类
#include <iostream>
const int MAX_VERTICES = 1000;
class EdgeNode { //Do I need a destructor here to ensure the next is getting deleted?
EdgeNode* next{ nullptr };
public:
EdgeNode() : next(nullptr) {}
EdgeNode(EdgeNode* _next) : next(_next) {}
EdgeNode* getNext() const { return next; };
};
解决方案
推荐阅读
- python - 从今天即 2019-12-18 开始,在气流中安排一个 DAG 每 5 分钟运行一次
- javascript - Jquery 显示和隐藏无法正常工作
- html - 我应该如何使用 :root 伪类?
- c++ - “可读大小为'x * 4,但可以写入/读取8'字节”与数组
- c++ - 在 Qt 上下文菜单中隐藏重新加载操作
- python - 启动器中的致命错误:无法创建进程-scrapy
- sum - 如何使用 AT END OF 和 SUM 聚合负值?
- java - 用 Java 获取 PostgreSQL 数据库的大小
- php - 使用 PHP 压缩文件的问题
- ansible - 如何在Jinja2 ansible中获得两个定义变量的总和