相关疑难解决方法(0)

删除vs删除[]

可能重复:
(POD)释放内存:删除[]是否等于删除?

当我被教授C++时,这是很久以前的事了.我被告知从不使用,deletedelete[]因为delete[]在单个对象上执行将相当于delete.我不知道是不是太信任老师了,这是真的吗?

有没有理由打电话delete而不是delete[]

我已经在SO中扫描了可能相关的问题,但没有找到任何明确的答案.

c++

96
推荐指数
4
解决办法
8万
查看次数

什么时候对象"超出范围"?

在C++中,何时将对象定义为"超出范围"?

更具体地说,如果我有一个单链表,那么将单个列表节点对象定义为"超出范围"?或者,如果一个对象存在并且被一个变量引用ptr,那么在删除引用或指向另一个对象时,该对象被定义为"超出范围"是否正确?

更新:假设一个对象是一个具有已实现的析构函数的类.在对象退出范围的那一刻,是否会调用析构函数?

if (myCondition) {
    Node* list_1 = new Node (3);
    Node* list_2 = new Node (4);
    Node* list_3 = new Node (5);

    list_1->next = list_2;
    list_2->next = list_3;
    list_3->next = null;
}
Run Code Online (Sandbox Code Playgroud)

换句话说,通过list_1在此行之后调用其析构函数来指向Node :

Node* list_1 = new Node (3);
Run Code Online (Sandbox Code Playgroud)

c++ destructor scope

26
推荐指数
2
解决办法
4万
查看次数

标签 统计

c++ ×2

destructor ×1

scope ×1