问题标签 [destruction]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
c++ - C++中静态对象的销毁顺序
我可以控制静态对象被破坏的顺序吗?有什么方法可以强制执行我想要的订单吗?例如,以某种方式指定我希望某个对象最后被销毁,或者至少在另一个静态对象之后被销毁?
c++ - 关于在 C++ 中销毁临时对象的确切时间的问题
以下代码是否安全(它在调试中工作):
所以 - 它安全吗?我应该忘记它并使用带有显式 tmp 的代码吗?
但无论如何-如果允许优化器在从此调用返回之前杀死临时对象,我仍然感兴趣:
编辑:谢谢大家!不幸的是,我无法更改函数“takesPointer”(它是库的一部分),我只能将其包装在调用 takePointer 的函数“takesReference”中 - 这会消除副本,还是允许编译器创建一个副本(“类型”是一个 int-3x3-Matrix,所以它不会那么糟糕,但仍然......)?
关于销毁时间:它会在“takesPointer”返回之后被销毁,还是在它被调用之后被销毁?
c++ - C++基本指针问题
我有一些共享指针shared_ptr<T> pointer1(new T(1));
。
现在,在代码的其他部分,我有一个明确的副本pointer2
(猜想它会存储在一个std::map
或其他容器中)。假设复制是这样完成的map.insert(make_pair(key1, pointer1));
。
我使用第二个副本只是为了预缓存一些数据,这意味着如果主指针已经无效,则不需要存储第二个指针。在这种情况下我该怎么办?
如果我知道第二个指针在pointer1
我的代码的其他部分无效,有什么方法可以强制释放第二个指针的内存?
或者我应该采取丑陋的方式 - 不时检查我的地图是否有指针ptr.unique()
设置true
并破坏它们?
也许有一些替代方案/建议?
编辑 - 纯代码示例
有什么方法/技巧可以让地图包含<0, shared_ptr[NULL]>
而不是<0, shared_ptr[5]>
在这些操作发生之后?
谢谢
c++ - C ++中的无异常树破坏
我最近在通过删除树的根“节点”来销毁树时设法获得堆栈溢出,而节点析构函数与此类似:
我想到的一个解决方案是使用自己的堆栈。所以以这种方式删除树:
但是在那里 std::stack::push() 可能会抛出异常。是否可以编写无异常树销毁?如何?
编辑:
如果有人对这里感兴趣,这里是一个受 jpalecek 指出的算法启发的无异常非递归代码:
注意:Node::IsLeaf()
相当于Node::GetChildCount()!=0
.
python - python如何管理对象删除或销毁
伙计们,我对 python 很陌生,并且正在学习它来构建一个 gui 应用程序(使用 wypython)。我有一个与python中的对象破坏有关的问题。例如在 myFrame 我有 onNew(创建一个新文档)和 onOpen(打开一个文件)方法。
简而言之,它看起来像这样。
现在,我想考虑“如果用户再次点击打开或新建,在他点击之前。”
所以对于窗口类,我可以调用self.viewwindow.Destroy()
来销毁窗口。数据模型对象呢?如果我先调用 new: self.data=DataModel()
,然后调用 open 和 re-assign self.data=DataModel.from_file(...)
,那么旧实例呢?我需要自己破坏它还是python会管理这种破坏?
c# - 为什么在所有销毁代码之后会话变量的值仍然存在?
登录.aspx
表.aspx
当我单击注销链接时
- 登录页面被加载,导致所有会话状态的破坏。
response.write
当我用来查看会话变量的值时,登录页面确认了这一点。- 当我提供用户名和密码并单击登录时,它会重定向到表格页面。
- 当我单击注销时,它会重定向到登录页面,登录页面会破坏信息。
问题
- 登录信息销毁后,我点击表格链接,它进入表格页面,如 NO NO 并重定向到登录页面。
- 但是如果我复制粘贴表格页面的 url,那么无论我做什么,它都允许我查看页面。也就是说,它采用会话变量的值并评估为 TRUE,即使这些值被破坏。
我不能使用 asp.net 登录功能,我的限制不允许我使用该控件。
c++ - Local variables construction and destruction with optimizer involved
If I have this code:
I know that variables a
and b
will be destroyed in reverse allocation order (b
will be destroyed first, then a
); but can I be sure that the optimizer will never swap the allocation and construction of a
and b
? Or I must use volatile
to enforce it?
com - 是否有“CreateInstance”的对应物?
我们有一些使用 MSXML 的代码,这样做是为了创建 XML 文档对象:
一旦我们完成了 doc_in,我们如何销毁它?它只是在 doc_in 超出范围时自动销毁,还是什么?
qt - 松散的QProcess
我创建了两个程序 A 和 B。B 被设计为在 64 位 A 内启动的 32 位 QProcess。这些程序通过 stdin、stdout 和 QSharedMemory 很好地通信。
现在,如果 A 关闭,B 也将关闭。但是,如果我在 Windows 任务管理器中结束进程 A,B 将继续逍遥法外,B 的 cpu 使用率将飙升。为什么?
如果 A 立即被销毁,我该如何关闭 B?
c++ - 主线程的销毁顺序和pthread_key_create的使用
我想知道使用pthread_key_create
while 传入析构函数。
我想要这样的东西:
显然我遗漏了相当多的细节。
对于不是主线程的任何线程,这显然很好(提供锁定等),并且每当线程死亡时,我的workoncomplex
函数就会被调用并操作foo
对象。
我的问题是,这对主线程是否有效,因为显然pthreadkey
析构函数的调用发生在线程结束时,但它是否保证在静态被破坏之前运行?如果是这样,我是否必须检查我是否在主线程中并立即返回?或者我可以只对所有线程一视同仁,并假设我的静态对象仍然存在。