C++删除指针

标签 c++ arrays int concatenation

我有一个包含医生类的程序,每个 Doctor 对象都有一个“Patients”的链表。这些患者是使用以下代码行创建的

Patient * patient = new Patient(string firstname, string ailment);

然后该患者被添加到医生的链表中。 Doctor 类中有一个指针,用于指向并遍历列表并获取每个患者。当我想删除这些患者时,我必须从列表的开头开始遍历每个患者。我的问题是,我可以通过简单地调用它们的析构函数来删除 eacg patient 吗?

Patient::~Patient(){

}

或者我是否需要在指针指向每个员工时实际调用 delete?

最佳答案

您调用delete 来删除内容。 delete 将反过来导致对象的析构函数被调用。

直接调用类的析构函数是C++支持的,在一些极少数情况下确实有用,但它实际上并没有释放内存。这不是您想在此处执行的操作。

关于C++删除指针,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12805420/

相关文章:

C++ Opengl Gsl 着色器性能问题

c++ - 隐式声明的(对象级)成员函数如何根据 ISO C++11 标准工作?

java - Android 原生应用程序源代码

c++ - SFML 获取全屏模式

javascript - 如何检查数组元素是否只包含换行符?

javascript - 与参数匹配时返回对象的键和值

c - 如何在C中将数组A的指针设置为指向数组B

Python int 太大,无法转换为 C int

python - python3 int(param1, param2) 中的第二个参数设置为 0 时是什么意思?

C 无符号整数 + 整数