destructor相关内容
请考虑以下代码: class A { public: A (){} 〜A(){} }; B类:公共A { B(){} 〜B(){} }; A * b =新B; 删除b; //未定义的行为 我的理解是C ++标准说删除b是未定义的行为-即, 任何事情都可能发生。但是,在现实世界中,我的经验是〜A()总是被 调用,并且内存已正确释放。
..
如果实现了一个通过构造页面并调用各种方法来为页面构建HTML的类,那么在析构函数中定义该类的显示/回显部分是否合适? 不是使用显式的 Class:displayHTML(); 方法,而是使用了 echo $ this-> html 在析构函数中,并且只要您准备显示调用 unset($ object); ,它将显示它吗? 我知道析构函数可能不是最佳解决方案,但想知道其他人对此有何想法?
..
有没有办法在类析构函数之前调用字段析构函数? 假设我有2个类, Small 和 Big ,以及 Big 包含 Small 的实例 class小 { public: 〜Small( ){std :: cout
..
说我是从threading.Thread派生的: 从线程导入的线程 类Worker(线程): def起始(自身): self.running =真 Thread.start(自身) def终止(自身): self.running = False self.join() def run(self): 导入时间 而self.running: 打印“ running “
..
问题 在派生类的析构函数执行后,但在基类的执行之前的 时间内,C ++标准对对象状态的保证是什么?析构函数执行? (这是调用派生类的子对象的析构函数的时间。) 示例 #include struct Base; struct成员{ 成员(基础* b); 〜Member(); 基础* b_; }; struct Base { virt
..
最简单的形式是以下设计: class会话{ Timer t = new Timer() ; // ... }; 每当分配 Session 时,我就开始里面的计时器;计时器将在10-20分钟后过期。现在,假设 Session 是否在计时器到期之前被销毁;那是我必须停止计时器的情况我不知道在 Session 被销毁时是否总是有最后一个方法被调用。 是否存在J
..
我遇到一个问题,其中DLL中的静态析构函数没有被调用。构造函数被调用,但析构函数未被调用。我的DLL中有这样的类 struct DLLDestructorTest { int blah; DLLDestructorTest() { blah = 2; } 〜DLLDestructorTest() { blah = 0; } }; DLLDestructorTe
..
我正在尝试从DLL导出类。我阅读了此文章: http:/ /www.codeproject.com/Articles/28969/HowTo-Export-C-classes-from-a-DLL “成熟”方法建议, //标头 类IFoo { public : virtual int getBar()= 0; } Foo类:public IFoo {...} D
..
我刚刚实现了链接列表。它可以正常工作,但即使是艰难的工作,我也注意到我无法在Node上创建有效的析构函数,这就是为什么它在代码中未实现的原因。 我需要在节点上实现工作的析构函数 List的析构函数,但这很简单,我将只使用Node类中的析构函数(但我需要这个)。 使列表对Node友好,因此我不必使用getNext(),但是我认为 可以自己处理(不确定如何,但是我会发现的)。 / li>
..
如何手动删除类的实例? 示例: #include #include 类奶酪{ 私人品牌: 字符串品牌; 浮动成本; public: Cheese(); //默认构造函数 Cheese(string brand,float cost); //参数化的构造函数 Cheese(const Cheese& rhs); //复制构
..
我有以下内容: template结构A { typedef X _X; }; 模板 struct B {// Y是struct A 类型名Y :: _ X x; void call_destructor(){ x。〜Y :: _ X(); //这不起作用 x.Y ::〜_X(); // } };
..
说,我有一个这样定义的C#类: 公共类MyClass { public MyClass() { //完成工作 } 〜MyClass() { //析构函数 } } 然后我从ASP.NET项目创建我的类的实例,如下例如: if(true) { MyClass c = new MyClass(); //是否与“ c”一起工作 //是否应该
..
假设我有两个类: class Container(): def __init __(self,name) : self.name =名称 class Data(): def __init __(self): self._containers = [] def add_container(self,name): self._containers.append(name
..
如果基类没有虚拟析构函数(例如,以避免使用vtable条目)并且派生类仅具有基本属性,则当基类的指针时,它是否释放了new分配的所有内存被删除?我知道不会调用Derived类的析构函数,但是我想知道是否将释放整个对象分配的内存吗? 我还假定对Derived指针调用delete将释放整个内存空间。 此外,如果它不释放内存的Derived类部分, ,它如何在相同的情况下如何工作,但在Base类
..
我想知道是否(以及如何)捕获在成员析构函数中引发的异常。示例: #include A类 { public: 〜A(){ throw std :: exception(“我放弃!”); } }; B类 { A _a; public: 〜B(){ //如何从成员析构函数中捕获异常? } }; 解决方案 是的,您可以
..
假设我有以下摘要: Foo foo; .... return bar(); 现在,C ++标准是否可以保证bar()在foo ::〜Foo之前被调用? ()?还是这是编译器/实现的选择? 谢谢! 解决方案 保证行为。实际的执行展开如下: 0:输入块(作用域) 1:Foo :: Foo( ) 2.评估bar();作为return语
..
我正在查看旧代码,发现以下代码段: MyClass ::〜MyClass() { EnterCriticalSection(& cs); //访问数据成员,这里没有访问** NO Global **成员 LeaveCriticalSection(& cs); } 我想知道是否有任何机会来守护破坏者? 考虑一种情况: 1。线程1-
..
可能重复: 我的代码是这样的: #include #include #include void handler(int){ std :: cout
..
我不知道为什么下面的代码会出错。 对象A的实例将被放入向量( vectorA.push_back(A a))连续。因此,有时需要重新分配 vectorA ;将调用析构函数,这是调用 A 的析构函数的位置,然后出现错误消息。 class A { long filePos; 工会{ Recording *录音; UINT64时间戳; }; public: 内联
..
在python 3中编写自定义 __ del __ 方法或依赖stdlib 1 中的一个的用例是什么?也就是说,在什么情况下它是相当安全的,如果没有它,它可以做一些很难做的事情? 出于许多充分的原因(
..