Python
Java
PHP
IOS
Android
Nodejs
JavaScript
Html5
Windows
Ubuntu
Linux
为什么删除不完整的类型实际上是未定义的行为?
考虑这个经典的例子来解释什么not与前向声明有关 in Handle h file class Body class Handle public Handle Handle delete impl private Body impl in
c
memorymanagement
destructor
forwarddeclaration
deleteoperator
非虚拟平凡析构函数+继承
假定一个类及其所有子类在存储在精确类型 或指向精确类型的指针 的变量中时只需要默认析构函数即可释放其资源 如果由基类指针引用并且子类可能会泄漏内存 并且然后被那个指针删除 Example include
c
inheritance
destructor
通过引用传递 - 为什么调用这个析构函数?
我找不到 在关于析构函数调用主题的许多问题中 任何与我的情况完全相同的问题 当传递的参数是引用时 为什么会调用析构函数 我将注释 主要在 main 中 放在我认为执行输出的代码行下 struct X simple test class in
c
destructor
C++ 中的列表析构函数
我刚刚实现了链接列表 它工作得很好 但甚至很难 我已经看到我无法在 Node 上创建工作析构函数的符号 这就是为什么它在代码中未实现 我需要在节点上实现工作析构函数 List 的析构函数 但这一个很简单 我将只使用 Node 类的析构函数
c
LinkedList
destructor
通用二叉树节点析构函数问题
我一直在做一项作业 现在我被有问题的析构函数困住了 我必须创建一个包含所有常用成员函数和一些特殊运算符的通用二叉树 还有一个限制 一切都必须迭代地工作 所以这次没有令人讨厌的递归黑客 BinTreeNode 类的析构函数显然有一些非常错误的
c
datastructures
binarytree
destructor
销毁对象放置新后未调用析构函数
我不知道为什么这不起作用 下列Function是通过放置 new 创建的 提供了一个函数来检查它是否应该被破坏 如果是 则手动调用其析构函数 这是测试用例 似乎从未调用析构函数 Represents a function at runtim
c
destructor
placementnew
什么情况下不会调用 C++ 析构函数?
我知道我的析构函数是在堆栈的正常展开和抛出异常时调用的 但不是在调用 exit 时调用 还有其他情况我的析构函数不会被调用吗 SIGINT 或 SIGSEGV 等信号怎么样 我认为对于 SIGSEGV 它们不会被调用 但对于 SIGNINT
c
Exception
signals
destructor
exit
非虚拟析构函数的未定义行为 - 这是现实世界的问题吗?
考虑以下代码 class A public A A class B public A B B A b new B delete b undefined behaviour 我的理解是 C 标准说删除 b 是未定义的行为 即 anything
c
destructor
undefinedbehavior
为什么 C++ 中的析构函数以与初始化相反的顺序取消分配内存?
以与变量相反的顺序取消分配内存有什么好处 考虑这个例子 Type1 Object1 Type2 Object2 Object1 假设Object2使用一些内部资源Object1并且只要Object1已验证 例如 Object2s 析构函数访
c
memorymanagement
destructor
RAII
如果构造函数抛出异常,是否会调用析构函数?
寻找 C 和 C 的答案 在 C 中 将 析构函数 替换为 终结器 它适用于 C 请参见下面的代码 但不适用于 C using System class Test Test throw new Exception Test Console
c
destructor
Finalizer
轻微破坏的意义
在 C 17 中 新的std optional要求它可以轻易被破坏 如果T在 Optional object dtor 中是可以轻易破坏的 optional 1 Effects If is trivially destructible v
c
destructor
C17
无法在二进制文件中找到 .dtors 和 .ctors
我正在读 黑客 剥削的艺术 一书 书中有一节解释了使用 dtors and ctors 我正在尝试重现本书的练习之一 但在我的可执行文件中没有这一部分 起初我以为问题是我正在编译 64 位 但现在我正在编译 32 位并且 dtors and
c
constructor
destructor
objdump
nm
临时函数参数的生命周期是多长? [复制]
这个问题在这里已经有答案了 当创建一个新实例时MyClass作为函数的参数 如下所示 class MyClass MyClass int a myFunction MyClass 42 该标准是否对析构函数的时间做出任何保证 具体来说 我可
c
destructor
lifetime
temporaryobjects
静态分配的内存在静态取消初始化期间会变得无效吗?
假设我定义了一个像这样的变量 C static const char str Here is some string data 我有一个静态分配的类实例 它在其析构函数中引用该数组 这会出错吗 例如 可以吗str变量不知何故变得无效 cla
c
memory
static
destructor
当本机 (C++) 异常传播到 CLR 组件时不会调用析构函数
我们有大量的本机 C 代码 已编译成 DLL 然后我们有几个包含 C CLI 代理代码的 dll 来包装 C 接口 最重要的是 我们有 C 代码调用 C CLI 包装器 标准的东西 到目前为止 但在很多情况下 本机 C 异常被允许传播到 N
NET
Exception
CCLI
destructor
RAII
在 C++11 的析构函数中锁定互斥体
我有一些代码需要线程安全和异常安全 下面的代码是我的问题的一个非常简化的版本 include
c
threadsafety
destructor
RAII
exceptionsafety
如何强制删除Python对象?
我很好奇的细节 del 在 python 中 何时 为什么应该使用它以及不应该使用它 我经历了惨痛的教训才知道 它并不像人们天真地期望的析构函数那样 因为它并不是与 new init class Foo object def init se
python
constructor
garbagecollection
destructor
referencecounting
Python __enter__ / __exit__ 与 __init__ (或 __new__)/ __del__
我已经搜索过 但找不到任何使用 python 的充分理由 enter exit 而不是 init or new del 我明白那个 enter exit 旨在与使用with作为上下文管理器的声明 以及with声明很棒 但与之相对应的是 这些
python
constructor
destructor
withstatement
contextmanager
平凡的析构函数会导致别名吗
C 11 3 8 1 声明 对于具有简单析构函数的对象 我可以通过分配其存储来结束其生命周期 我想知道微不足道的析构函数是否可以延长对象的生命周期 并通过 销毁一个我更早结束生命周期的对象 来导致别名问题 首先 我知道一些东西是安全且无别名
c
memory
C11
destructor
g++ __static_initialization_and_destruction_0(int, int) - 它是什么
编译 c 文件 带有全局静态对象 后 我进入nm输出这个函数 00000000 t Z41 static initialization and destruction 0ii static initialization and destru
c
constructor
g
destructor
«
1
2
3
4
5
6
...8
»