destructor相关内容

静态类成员/类引用的生命周期?

我要求展示如何为特殊记录器的旧栗子做类似单例的解决方案。我仍然不遗余力地指出不做这种事情的原因。 这样做,我有一个静态的类成员意外消失了。 p> 使用此类声明: epiLogger.py: 导入日志 类epiLogger(): _initialized = {} _finalised = {} def __init __(self,name): self ..
发布时间:2020-10-21 02:49:25 Python

防止析构函数被手动调用

我有这个课程: class测试 { private $ test ='ok' ; 公共函数doTest() { echo $ this-> test; } 公共函数__destruct() { $ this-> test ='not ok'; } } 和以下测试用例: $ test =新测试; $ test-> __ destr ..
发布时间:2020-10-21 02:48:23 PHP

为什么C ++中的默认用户定义析构函数会增加执行时间?

在我的项目中,我们有1个用户定义的默认析构函数,其编写符合项目的某些编码标准要求。 该析构函数的Class被实例化了200次以上,这增加了整体响应时间,当删除了该析构函数时,我发现响应时间缩短了28毫秒。 谁能解释为什么这种时间差异,尽管它们只是默认的析构函数,而是由用户定义的,总之会由编译器调用。 “用户定义的默认析构函数”的意思是空的析构函数: 〜Classname(){}; ..
发布时间:2020-10-21 02:48:14 C/C++开发

如何不调用析构函数而退出PHP脚本?

使用MVC框架和控制器,可以在析构函数中呈现页面。我正在通过php下载文件,因此在操作结束时脚本应结束。 如何在不调用析构函数的情况下结束脚本? 是否有更好的解决方案? 退出并死亡调用析构函数。 但是,如果您只是想停止由这些析构函数引起的可视输出,而不是它们可能会产生的任何其他副作用(文件关闭,数据库连接关闭),则它是最好只是杀死更多的输出,而不要把破坏者放在一边。我认为这 ..
发布时间:2020-10-21 02:48:11 PHP

为什么std :: exception析构函数不是noexcept

C ++ 11的析构函数 std :: exception 基类不是 noexcept ,因此(理论上)可能会引发异常,从而对其所有派生类(包括 std :: bad_alloc 和 std :: runtime_error )。 C ++ 98 std :: exception 的析构函数具有 throw()异常规范,表明它是不允许抛出异常。为什么会有所不同?为什么现在允许引发异常?鉴于 std ..
发布时间:2020-10-21 02:48:08 C/C++开发

如何清理Java中打开的进程?

我正在从Java程序启动流程。我紧紧抓住它,然后在程序的后面,我可能会向它发送一些信号(不同于UNIX信号-一种不同的机制),告诉它清理和关闭自身,这是终止此过程的正确方法。以后我可能会重新启动并保留该进程,然后再次停止该进程任意次。 我希望我的程序(如果存在)向该进程发出信号以通知终止并确保它存在。否则,由于Java异步启动了该过程,因此它会持续存在并在我的程序终止后继续运行。 我想 ..
发布时间:2020-10-21 02:48:04 Java开发

是object .__ del __(self)最适合刷新日志记录类的地方吗?

我为我的Python脚本提供了一个自定义日志记录类,该类具有 flush()方法,其中方法 print() s 我想在特殊的 flush() > __ del __()方法,以防程序在没有刷新日志的情况下结束。但是文档中的注释指出: [...]当响应模块被删除而调用 del ()时(例如,在执行程序时)完成), del ()方法所引用的其他全局变量可能已经被删除或正在被拆除(例如,进口 ..
发布时间:2020-10-21 02:47:58 其他开发

C ++-当向量包含对象时会调用析构函数吗?

如果我在向量内动态分配类的对象,如果使用clear()会为每个对象调用析构函数吗? 解决方案 是的,它们都已正确清理。 来自此链接: 向量的所有元素均被删除:它们的析构函数为调用,然后将其从向量容器中删除,使容器的大小为0。 [sequence.reqmts] 部分也明确了这一点: a.clear()销毁 a 中的所有元素,使所有引用 a 并可能使过去的迭代器无效。 ..
发布时间:2020-10-21 02:47:54 其他开发

终结器和析构函数,维基百科怎么说?

据我了解,有两个阵营涉及这个问题-第一个阵营认为终结器是C#的析构函数。因此,他们认为这两件事是相同的。 第二个阵营认为两者之间存在细微差异-用Wikipedia编写-“术语“析构函数”通常用于意思是确定性地调用清除,而当垃圾收集器说运行它时,将运行“ finalizer”。” 但是让我为自己澄清一下。确定性调用清理?根据C#规范和msdn的规定,析构函数不能被调用(它们将被自动调用) ..
发布时间:2020-10-21 02:47:51 C#/.NET

如何及早删除函数参数?

我正在编写一个函数,该函数需要大量参数并且可以运行很长时间。它只需要一半的参数。如果没有更多引用,该函数是否可以删除该参数所指向的值? 我能够尽快将其删除函数返回,如下所示: def f(m): print'S1' m = #__ import __('gc')。collect()#取消注释无济于事。 print'S2' class M(object): def __d ..
发布时间:2020-10-21 02:47:48 Python

对象__destruct()中的修改未保存PHP

可能重复: 在构造函数PHP中传递对$ this的引用 _execute()的方法的请求对象。在该方法中,我(除其他事项外)创建一个名为pageController的对象,在其上调用一个方法,然后使用以下代码删除该对象: $ controller = new $ this-&_; _ controllerName($ this); call_user_func(array( ..
发布时间:2020-10-21 02:47:46 PHP

C#类:是否进行日志记录/内务处理,应该使用析构函数吗?

我有一个c#类。每当不再使用此类时,我都想做一些事情。例如,记录当前状态等等。 我想确保在不再使用该类时,每次都运行此方法。 我不想只使用一种简单的方法,因为不能确定每个用户都在调用它。 我没有资源(例如文件 使用析构函数的最佳方法是吗? “未使用”例如(何时): 用户在表单中使用我的班级并且表单已关闭 该类用于应用程序中,并且该应用程序已关闭 解决方案 ..
发布时间:2020-10-21 02:46:44 C#/.NET

根据链接顺序,不调用C ++析构函数

在检查内存泄漏后,我在应用程序中遇到了这个问题,发现我的某些类根本没有被销毁。 下面的代码分为3个文件,应该实现称为 pimpl 。预期的情况是同时让 Cimpl 构造函数和析构函数打印其消息。但是,这不是我用g ++得到的。在我的应用程序中,只有构造函数被调用。 classes.h: #include 类Cimpl; 类Cpimpl { std ..
发布时间:2020-10-21 02:46:41 C/C++开发

在python 2.x中,我应该调用object .__ del__吗?

在Python 3.x中,所有类都是 object 的子类。在2.x中,您必须明确声明 class MyClass(object)。而且,由于我尝试编写尽可能多的3.x兼容代码,所以我将 object 子类化。 在我的程序中,我使用的是 __ del __ 方法,我想知道是否应该调用 object .__ del __(self),还是神奇地解决了这个问题? 感谢, Wayne ..
发布时间:2020-10-21 02:46:37 Python

工会成员的析构函数似乎被自动调用

我正在尝试实现带标签的联合。 我的理解是,在C ++联合中,非静态成员的非平凡(即非空)析构函数是从未调用过,因此我们必须自己调用它们。那就是我所做的: #include Class C { public: C(){ std :: cout ..
发布时间:2020-10-21 02:46:34 C/C++开发

通过引用-为什么调用此析构函数?

在有关析构函数调用主题的许多问题中,我找不到与我的情况完全相同的东西。 为什么在调用析构函数时调用析构函数传递的参数是参考?我在我认为输出从中执行的代码行下加了注释(大部分在主要代码中)。 struct X {/ /简单测试类 int val; 无效(const std :: string& s,int nv) { std :: cerr” ..
发布时间:2020-10-21 02:46:31 C/C++开发

如何手动销毁成员变量?

我对析构函数有一个基本问题。 假设我有以下课程 A类 { public: int z; int * ptr; A(){z = 5; ptr = new int [3]; }; 〜A(){delete [] ptr;}; } 现在,析构函数应该破坏对象的实例化。 上面的析构函数正是这样做的,它释放了new分配的动态分配的内存。 ..
发布时间:2020-10-21 02:46:27 C/C++开发

C ++对析构函数的未定义引用

很抱歉,但是我要重新打开它。在对本征误差进行分类之后,它又重新恢复了原样。完全相同的代码完全相同的错误。 (好吧,编译器这次找到了特征头。)因此,同样的问题: 我已经搜索了析构函数c ++,并且未定义的引用没有用。但是我很确定这是我的一个简单的疏忽。 错误: /tmp/ccDsaJ9v.o:在函数`main'中: geomSetup.cpp :(。text + 0x5ab): ..
发布时间:2020-10-21 02:46:24 C/C++开发