destroy 相关问题

在面向对象的语言中,对象需要在创建后销毁以释放内存。然而,破坏可以具有更广泛的含义。有时,销毁意味着必须释放资源或必须删除文件。

销毁父对象Unity3D

我面临的问题是我希望销毁父对象,但我无法这样做。 我希望在子弹击中这些孩子时摧毁 User01。 我的代码如下。 JS: 功能

回答 2 投票 0

为什么代码会引发错误而不是销毁 ursina 中的实体?

我正在使用ursina制作一个无尽的跑步者,我在这3行代码中遇到了错误。 def更新(自我): 如果 self.y >= 8: 摧毁(自我) 我试着问过我的朋友,但还是不行

回答 1 投票 0

如果我在 Angular 应用程序(根)组件中打开订阅,是否需要使用 takeUntilDestroyed 管道?

在 Angular 中,在组件销毁时调用取消订阅是一种很好的做法: 从 '@angular/core/rxjs-interop' 导入 { takeUntilDestroyed } ; 导出类 Component 实现 OnIn...

回答 1 投票 0

CDK ComponentPortal 如何从视图中删除组件

我是 CDK 覆盖层/门户的新手。我根据 CDK 文档中的示例代码创建了一个组件。我已经删除了 templatePortal 和 domPortal 的示例代码,以便集中精力...

回答 1 投票 0

即使在离开页面并返回添加数据时使用 destroy() 后,Canvas 仍已在使用中

我收到错误“画布已在使用中”。必须先销毁 ID 为“ ”的图表,然后才能重新使用 ID 为“MyChart”的画布。对于 co 中的每个特定 id,错误出现 4/5 次...

回答 1 投票 0

当一个零件接触到另一个零件时如何销毁它?

我正在尝试编写 Roblox 游戏脚本。 现在的目标是,当我单击“AttractButton”时,对象应该吸引到玩家的位置并停在 4 个螺柱之外。另一方面,单击...

回答 1 投票 0

spring手动销毁bean而不是ctx.close()

是否可以告诉spring的容器销毁特定的bean(原型)以节省内存? 我不想使用 ctx.close() 来看到这个 bean 被销毁,而是在

回答 1 投票 0

使用路由重用策略重新附加组件时,Angular CustomElements 被破坏

我们使用选项卡式方法来允许在多个视图之间导航,而无需在选项卡激活时完全重新加载每个视图。为了实现这一点,我们使用路由重用策略。当我使用customEle时...

回答 1 投票 0

线程启动的运行进程不会销毁(Java)

启动多个线程并让每个 exec() 然后 destroy() 一个正在运行的 java 进程会导致某些进程没有被销毁,并且在程序退出后仍在运行。这是一些代码

回答 8 投票 0

如何清除/删除TMS WEB Core中TWebGridPanel上的所有控件?

我有一个 TWebGridPanel 组件,我正在动态填充行和列以及这些行和列中的控件。 我的问题是我需要清除/删除/销毁所有控件...

回答 1 投票 0

如果施加力,Unity 中的池化游戏对象在 SetActive 后会自行销毁

当我从创建的对象列表中检索一个对象并重新激活它时,它会自行销毁,但前提是我施加了力来启动它移动。 如果我从不施加力量,一切都会正常进行......

回答 2 投票 0

当根窗口关闭时,软件如何保存 tkinter Canvas 矩形几何图形?

我的程序在 tkinter.Canvas 上的视频图像顶部显示一个矩形。鼠标处理程序允许用户移动和拉伸矩形以识别要处理的视频区域。当我们...

回答 1 投票 0

作为函数参数传递时在哪里销毁TextEditingController?

有关于如何正确销毁 TextEditingController 的文档,但这些文档对我的情况没有帮助。我的项目中有重复的代码,所以我想通过

回答 1 投票 0

如何有效地销毁Java Servlet中的“会话”?

我正在使用的 Servlet 有一个可变会话。 我已经尝试过 session.invalidate();,这似乎已经破坏了会话,但是当我像这样进行重定向时 response.sendRedirect("restanes.jsp"); ,它...

回答 3 投票 0

无法销毁文章 |无法从动作控制器更改为销毁

我对 Ruby on Rails 非常陌生,我正在学习本教程 https://guides.rubyonrails.org/getting_started.html#using-partials-to-share-view-code 现在我在“7.5删除文章”...

回答 1 投票 0

为什么我不能“销毁”“自有”的CRTP向量,但仍然可以释放其地址?

摘自 Björn Fahller 在 2023 年 CPP 会议上的闪电演讲。 => youtu.be/LKKmPAQFNgE 这是关于如何在不接触 new 甚至 malloc 的情况下强制 c++ 泄漏内存。 结构 V:向量 摘自 Björn Fahller 在 2023 年 CPP 会议上的闪电演讲。=> youtu.be/LKKmPAQFNgE 这是关于如何在不接触 new 甚至 malloc 的情况下强制 C++ 泄漏内存。 struct V : vector<V> {}; auto v = V{}; v.emplace_back(); v.swap(v.front()); // v representation becomes uint64_t[3]{ 0x0, 0x0, 0x0}, // so the vector allocation gets lost because no refs are left on the scope. 所以我想知道是否可以手动销毁它。 struct V : vector<V> {}; auto v = V{}; v.emplace_back(); v.emplace_back(); v.emplace_back(); v.emplace_back(); auto front = v.front(); v.swap(v.front()); using allocator = std::allocator<V>; using atraits = std::allocator_traits<allocator>; auto a = front.get_allocator(); atraits::destroy(a, &front + 1); // Ok atraits::destroy(a, &front + 2); // Ok atraits::destroy(a, &front + 3); // Ok // atraits::destroy(a, &front); // error SIGSEGV atraits::deallocate(a, &front, 4); // still seems Ok? 当尝试销毁拥有自己地址的 V 对象时,会发生SIGSEGV。 0x1796320 : 0x1796320 (alloc_begin_ptr) // It owns itself!!! 0x1796328 : 0x1796380 (one_pass_content_end_ptr) 0x1796330 : 0x1796380 (one_pass_alloc_end_ptr) 0x1796338 : 0x0 (alloc_begin_ptr) 0x1796340 : 0x0 (one_pass_content_end_ptr) 0x1796348 : 0x0 (one_pass_alloc_end_ptr) 0x1796350 : 0x0 (alloc_begin_ptr) 0x1796358 : 0x0 (one_pass_content_end_ptr) 0x1796360 : 0x0 (one_pass_alloc_end_ptr) 0x1796368 : 0x0 (alloc_begin_ptr) 0x1796370 : 0x0 (one_pass_content_end_ptr) 0x1796378 : 0x0 (one_pass_alloc_end_ptr) 所以我尝试将其移至堆栈。看起来效果不错。 struct V : vector<V> {}; auto v = V{}; v.emplace_back(); v.emplace_back(); v.emplace_back(); v.emplace_back(); auto front = v.front(); v.swap(v.front()); auto v2 = std::move(front); 没有任何对象拥有自己。 0x7ffc44d02b20 : 0x927320 (alloc_begin_ptr) // v2 on stack 0x7ffc44d02b28 : 0x927380 (one_pass_content_end_ptr) 0x7ffc44d02b30 : 0x927380 (one_pass_alloc_end_ptr) 0x927320 : 0x0 (alloc_begin_ptr) 0x927328 : 0x0 (one_pass_content_end_ptr) 0x927330 : 0x0 (one_pass_alloc_end_ptr) 0x927338 : 0x0 (alloc_begin_ptr) 0x927340 : 0x0 (one_pass_content_end_ptr) 0x927348 : 0x0 (one_pass_alloc_end_ptr) 0x927350 : 0x0 (alloc_begin_ptr) 0x927358 : 0x0 (one_pass_content_end_ptr) 0x927360 : 0x0 (one_pass_alloc_end_ptr) 0x927368 : 0x0 (alloc_begin_ptr) 0x927370 : 0x0 (one_pass_content_end_ptr) 0x927378 : 0x0 (one_pass_alloc_end_ptr) 为什么拥有自身的 allocator_traits::destroy() 上的 vector 会触发 SIGSEGV ? // atraits::destroy(a, &front); // error SIGSEGV 0x1796320 : 0x1796320 (alloc_begin_ptr) // It owns itself!!! 0x1796328 : 0x1796380 (one_pass_content_end_ptr) 0x1796330 : 0x1796380 (one_pass_alloc_end_ptr) [直播] (我假设这一行: auto front = v.front(); 是一个拼写错误,因为 v.front() 是您从中复制的默认构造的 V 对象。这意味着该线本质上是auto front = V{}。你的意思是auto& front = v.front()) &front + 1、&front + 2和&front + 3是指向空向量的指针,这些可以被销毁。 如果您试图破坏 &front 指向的内容,则这是具有 4 个元素的向量。最后三个元素是那些空向量,被销毁是没有问题的。 但 front 的第一个元素是 front 本身。这是未定义的行为,因为您将在已经被销毁的对象上调用析构函数,但实际上它会导致无限循环,因为它只会再次调用析构函数并递归地尝试销毁相同的向量(以及堆栈溢出,从而导致段错误)。 如果您只是释放它,则不会调用析构函数,因此不会出现无限循环。如果向量保存了分配内存的其他向量,则可能会泄漏内存,因为这些向量的析构函数也不会被调用。 正如您所尝试的那样,“修复”此问题的方法是打破“所有权”循环,例如将其移动到新向量(V{} = std::move(front) / V{}.swap(front))。

回答 1 投票 0

PHP 中的会话不会被销毁,cookie 也不会被删除

我有一个注销函数,它在 HTML 渲染之前被调用,它是: 函数注销() { $_SESSION = []; if (ini_get("session.use_cookies")) { $参数=

回答 1 投票 0

通过关系删除 has_many Ruby on Rails

我有一个 Ruby on Rails 应用程序 我通过 user_unit_assocs 拥有 has_many 单元和 has_many 用户的块。 该模型是这样定义的。 块类 < ActiveRecord::Base has_many :units, dep...

回答 1 投票 0

Vue 销毁可排序元素

总结 创建面板,并将图层添加到面板。当尝试删除图层时 面板中的最后一个图层被删除,而不是图层项目 选择销毁。 完整问题: 了解c...

回答 1 投票 0

如何在python中制作删除元素的按钮

我正在用python制作一个简单的任务管理器,但我想不出一种方法可以让按钮删除任务(如果制作了)。 我尝试创建一个删除项目的功能,但没有成功。佛...

回答 1 投票 0

© www.soinside.com 2019 - 2024. All rights reserved.