destructor相关内容

非虚拟析构函数的不确定行为-这是现实问题吗?

请考虑以下代码: class A { public: A (){} 〜A(){} }; B类:公共A { B(){} 〜B(){} }; A * b =新B; 删除b; //未定义的行为 我的理解是C ++标准说删除b是未定义的行为-即, 任何事情都可能发生。但是,在现实世界中,我的经验是〜A()总是被 调用,并且内存已正确释放。 ..
发布时间:2020-10-21 02:46:20 C/C++开发

使用php析构函数适合显示HTML吗?

如果实现了一个通过构造页面并调用各种方法来为页面构建HTML的类,那么在析构函数中定义该类的显示/回显部分是否合适? 不是使用显式的 Class:displayHTML(); 方法,而是使用了 echo $ this-> html 在析构函数中,并且只要您准备显示调用 unset($ object); ,它将显示它吗? 我知道析构函数可能不是最佳解决方案,但想知道其他人对此有何想法? ..
发布时间:2020-10-21 02:46:19 PHP

Java中是否有等效的C ++析构函数?

最简单的形式是以下设计: class会话{ Timer t = new Timer() ; // ... }; 每当分配 Session 时,我就开始里面的计时器;计时器将在10-20分钟后过期。现在,假设 Session 是否在计时器到期之前被销毁;那是我必须停止计时器的情况我不知道在 Session 被销毁时是否总是有最后一个方法被调用。 是否存在J ..
发布时间:2020-10-21 02:45:07 Java开发

DLL中没有调用析构函数的C ++静态对象

我遇到一个问题,其中DLL中的静态析构函数没有被调用。构造函数被调用,但析构函数未被调用。我的DLL中有这样的类 struct DLLDestructorTest { int blah; DLLDestructorTest() { blah = 2; } 〜DLLDestructorTest() { blah = 0; } }; DLLDestructorTe ..
发布时间:2020-10-21 02:45:06 C/C++开发

C ++中的列表析构函数

我刚刚实现了链接列表。它可以正常工作,但即使是艰难的工作,我也注意到我无法在Node上创建有效的析构函数,这就是为什么它在代码中未实现的原因。 我需要在节点上实现工作的析构函数 List的析构函数,但这很简单,我将只使用Node类中的析构函数(但我需要这个)。 使列表对Node友好,因此我不必使用getNext(),但是我认为 可以自己处理(不确定如何,但是我会发现的)。 / li> ..
发布时间:2020-10-21 02:43:01 C/C++开发

如何手动删除类的实例?

如何手动删除类的实例? 示例: #include #include 类奶酪{ 私人品牌: 字符串品牌; 浮动成本; public: Cheese(); //默认构造函数 Cheese(string brand,float cost); //参数化的构造函数 Cheese(const Cheese& rhs); //复制构 ..
发布时间:2020-10-21 02:42:57 C/C++开发

什么时候在ASP.NET中为C#类调用析构函数?

说,我有一个这样定义的C#类: 公共类MyClass { public MyClass() { //完成工作 } 〜MyClass() { //析构函数 } } 然后我从ASP.NET项目创建我的类的实例,如下例如: if(true) { MyClass c = new MyClass(); //是否与“ c”一起工作 //是否应该 ..
发布时间:2020-10-21 02:42:48 C#/.NET

Python中的自定义析构函数

假设我有两个类: class Container(): def __init __(self,name) : self.name =名称 class Data(): def __init __(self): self._containers = [] def add_container(self,name): self._containers.append(name ..
发布时间:2020-10-21 02:42:46 Python

是否使用非虚拟析构函数和基类指针释放了整个对象?

如果基类没有虚拟析构函数(例如,以避免使用vtable条目)并且派生类仅具有基本属性,则当基类的指针时,它是否释放了new分配的所有内存被删除?我知道不会调用Derived类的析构函数,但是我想知道是否将释放整个对象分配的内存吗? 我还假定对Derived指针调用delete将释放整个内存空间。 此外,如果它不释放内存的Derived类部分, ,它如何在相同的情况下如何工作,但在Base类 ..
发布时间:2020-10-21 02:41:44 C/C++开发

如何从成员析构函数中捕获异常

我想知道是否(以及如何)捕获在成员析构函数中引发的异常。示例: #include A类 { public: 〜A(){ throw std :: exception(“我放弃!”); } }; B类 { A _a; public: 〜B(){ //如何从成员析构函数中捕获异常? } }; 解决方案 是的,您可以 ..
发布时间:2020-10-21 02:41:41 C/C++开发

C ++析构函数函数调用顺序

假设我有以下摘要: Foo foo; .... return bar(); 现在,C ++标准是否可以保证bar()在foo ::〜Foo之前​​被调用? ()?还是这是编译器/实现的选择? 谢谢! 解决方案 保证行为。实际的执行展开如下: 0:输入块(作用域) 1:Foo :: Foo( ) 2.评估bar();作为return语 ..
发布时间:2020-10-21 02:41:37 C/C++开发

析构函数应该是线程安全的吗?

我正在查看旧代码,发现以下代码段: MyClass ::〜MyClass() { EnterCriticalSection(& cs); //访问数据成员,这里没有访问** NO Global **成员 LeaveCriticalSection(& cs); } 我想知道是否有任何机会来守护破坏者? 考虑一种情况: 1。线程1- ..
发布时间:2020-10-21 02:41:36 C/C++开发

标量删除析构函数问题

我不知道为什么下面的代码会出错。 对象A的实例将被放入向量( vectorA.push_back(A a))连续。因此,有时需要重新分配 vectorA ;将调用析构函数,这是调用 A 的析构函数的位置,然后出现错误消息。 class A { long filePos; 工会{ Recording *录音; UINT64时间戳; }; public: 内联 ..
发布时间:2020-10-21 02:40:30 C/C++开发

__del__的用例

在python 3中编写自定义 __ del __ 方法或依赖stdlib 1 中的一个的用例是什么?也就是说,在什么情况下它是相当安全的,如果没有它,它可以做一些很难做的事情? 出于许多充分的原因( ..
发布时间:2020-10-21 02:40:26 Python