腾讯云
开发者社区
文档
建议反馈
控制台
登录/注册
首页
学习
活动
专区
圈层
工具
MCP广场
文章/答案/技术大牛
搜索
搜索
关闭
发布
文章
问答
(9999+)
视频
沙龙
4
回答
非虚拟
析
构
函数
c++的异常
c++
、
exception
、
virtual-destructor
当我们超出catch
块
作用域时,会
调用
异常
析
构
函数
吗?(万一我们不重新扔出去)...如果在超出捕获范围时应该
调用
异常
析
构
函数
,那么在这种情况下,将只
调用
基类
浏览 5
提问于2015-02-05
得票数 14
回答已采纳
11
回答
在指向子类的指针上删除会
调用
基类
析
构
函数
吗?
c++
、
memory-management
、
destructor
、
delete-operator
、
base-class
我有
一个
class A,它为它的
一个
字段使用堆内存分配。类A
被
实例化并存储为另
一个
类中的指针字段(class B。当我处理完B类的对象时,我
调用
delete,我假设它
调用
析
构
函数
...但是这是否也
调用
了A类的
析
构
函数
呢?编辑:B的实例的delete
调用
B::~B();
调用
A::~A()
浏览 90
提问于2009-03-24
得票数 170
回答已采纳
6
回答
如何判断
析
构
函数
是否
被
调用
?
c++
、
c++11
我刚刚有个面试问题,面试官问 如果未
调用
析
构
函数
,您将做什么? 说实话,我不知道答案。我的猜测是将
析
构
函数
放入try catch
块
中,但我从未见过有人这样做。有没有更好的解决办法?
浏览 6
提问于2015-12-11
得票数 0
回答已采纳
1
回答
Android -本机全局对象
析
构
函数
从未
调用
过
android
、
c++
、
java-native-interface
我使用经典的System.loadLibrary()方法从
一个
静态java
块
加载
一个
共享库。: { { } 全局
函数
尽管在加载库时
调用
构造
函数
,但在我看来,
析
构
函数
似乎从未被
调用
过。我期望在两个构造
函数
浏览 4
提问于2016-05-11
得票数 2
回答已采纳
1
回答
堆栈展开(Un)捕获异常
c++
如果没有找到匹配项,则控制流将继续展开堆栈,直到下
一个
try
块
,依此类推。如果找到匹配,则控制流跳转到匹配的catch
块
。当控制流在
调用
堆栈上移动时,对所有具有自动存储持续时间但尚未销毁的对象
调用
析
构
函数
。然后我们就有了 如果抛出并没有捕获异常,包括转义std::线程的初始
函数
、主
函数
和任何静态或线程本地对象的构造
函数
或
析
构
函数
的异常,则<em
浏览 4
提问于2022-01-20
得票数 2
2
回答
双重结构是未定义的行为吗?
c++
、
object
、
c++11
、
constructor
、
lifetime
在我们的代码库中,使用了
一个
内存
块
池,并且在“分配”时使用“放置新”来构造对象。不过,我忽略了
析
构
函数
调用
,发现允许“双重构造”很奇怪,并且不知道在同
一个
对象上再次
调用
构造
函数
是否是未定义的行为。在C++11 3.8.4 basic.life中,它读取 程序可以通过重用对象占用的存储或显式
调用
类类型的对象的
析
构
函数
来结束任何对象的生存期。对于具有非平凡
析<
浏览 5
提问于2020-11-10
得票数 4
回答已采纳
2
回答
关于
析
构
函数
调用
的混淆
c++
、
class
、
c++17
、
destructor
是在销毁对象之前还是在对象
被
销毁之后
调用
析
构
函数
?我认为它是在对象
被
销毁之前
调用
的,因为在
一个
对象
被
销毁后,我们无法访问该内存来释放其中的任何资源,但是如果我错了,请纠正我,以便我能够很好地理解它。
浏览 3
提问于2020-12-20
得票数 0
回答已采纳
3
回答
引用捕获(使用catch)时异常对象的作用域
c++
、
exception
在下面的示例中,我看到在catch
块
执行之前
调用
析
构
函数
,这意味着我们所引用的对象在catch中,在使用它时它肯定超出了作用域。那为什么要用参考呢?; catch(MyException& obj) cout<<"Catched unhandled exception";} 2.为什么
析
构
函数
在这里
被
调用
了两次一次在
浏览 1
提问于2015-10-17
得票数 1
回答已采纳
2
回答
用Try / Catch
块
替换
析
构
函数
中的方法
块
c++
、
visual-studio-2008
泄漏最终在
一个
特定object...and的
析
构
函数
中,我发现了一些非常奇怪的东西。我的第
一个
问题是:这是严格合法的C++吗?它在Visual Studio2008中编译,但我向一些朋友/同事展示了它,他们对它的工作感到相当震惊。然而,它实际上并不能像预期的那样工作:这个对象继承的基类有
一个
析
构
函数
,这个
析
构
函数
现在永远不会被
调用
(而不是将
析</
浏览 1
提问于2011-05-10
得票数 6
回答已采纳
1
回答
在scoped_ptr异常情况下未
调用
析
构
函数
c++
、
exception
、
boost
、
destructor
、
scoped-ptr
B的
析
构
函数
。但是我使用了scoped_ptr,所以它应该
调用
B的
析
构
函数
,或者我误解了scoped_ptr的使用。 A a;} 在这种情况下,A的
析
构
函数
将被
调用
,因为在try
块
中
浏览 3
提问于2012-10-14
得票数 6
回答已采纳
3
回答
如果初始化或销毁
被
未处理的异常终止,那么完全构造的子对象是否必然
被
销毁?
c++
、
language-lawyer
第15.2/1号
一个
具有任何存储持续时间的对象,其初始化或销毁
被
异常终止,它将为其所有完全构造的子对象(不包括类似于联盟类的变体成员)执行
析
构
函数
,即对于主体构造
函数
(12.6.2)已完成执行且
析
浏览 6
提问于2014-03-03
得票数 12
回答已采纳
1
回答
异常c++中的堆栈展开
c++
、
exception
、
try-catch
、
stack-unwinding
我遇到了术语“堆栈展开”--据我所知,每当抛出异常,而“抛出
函数
”中没有catch
块
时,
函数
堆栈就会“展开”,并据此
调用
所有本地对象的d‘’tor(在遇到合适的catch
块
之前,外部
函数
也会发生同样的情况我的问题是: 假设异常是在try
块
中抛出的,并有适当的后续捕获,那么会为try
块
中定义的所有对象
调用
d‘for吗?还是对try
块
中定义的所有对象,直到异常发生为止?或者根本没有对象,他们会“等待”
函数</em
浏览 2
提问于2015-02-05
得票数 1
3
回答
使用push_back调整vector<unique_ptr>的大小-它是如何工作的?
c++
、
memory
、
vector
、
c++11
、
smart-pointers
据我所知,当stuff
被
pushed_back到
一个
向量中时,有时它必须分配
一个
新的内存
块
,导致将所有元素从旧的内存
块
复制到其中,
调用
它们的
析
构
函数
。既然unique_ptr
析
构
函数
删除了拥有的内存,那么它们怎么可能与向量一起工作呢?在向量中使用unique_ptr安全吗?它比普通的指针慢吗?
浏览 0
提问于2013-04-22
得票数 11
回答已采纳
2
回答
继承层次结构中的
析
构
函数
排序
c++
、
inheritance
、
polymorphism
、
virtual-destructor
如果我有以下层次结构: 类E(成员对象1)
浏览 0
提问于2013-02-28
得票数 1
回答已采纳
2
回答
C++语句的大O是'delete [] Q;‘O(1)还是O(n)?
c++
、
arrays
、
big-o
、
time-complexity
、
dynamic-memory-allocation
标题不言自明。很简单的问题。我想是O(n),但想在明天期末考试前确认一下。
浏览 0
提问于2013-05-10
得票数 10
4
回答
默认
析
构
函数
有什么作用吗?
c++
、
destructor
我想知道默认的类
析
构
函数
在被
调用
时是否真的会做些什么。 我一直在研究它,我发现如果我用
一个
调用
自己的
析
构
函数
的
函数
创建
一个
类,它根本不会做任何事情(即所有变量保持不变,实例仍然存在并可用)。这是否意味着类
析
构
函数
可以
被
认为是所有类都有的继承的虚
函数
,并且可以重新定义它(删除指针等和清除成员变量),但如果不重新定
浏览 1
提问于2013-02-16
得票数 2
回答已采纳
1
回答
有什么方法可以判断程序正在抛出异常吗?
c++
、
c++11
、
exception
、
exception-handling
我的问题的简短版本我有
一个
必须支持的旧API:{ { //do API stuffMyTimeTra
浏览 1
提问于2017-10-25
得票数 0
回答已采纳
2
回答
删除c++对象时崩溃
c++
但是另
一个
测试是这样的:类A{ public: A() {{ void ()}{} private: int mIntA;};{ B() mIntB = 1234; virtual ~B
浏览 3
提问于2010-11-14
得票数 1
回答已采纳
10
回答
调用
析
构
函数
,然后
调用
构造
函数
(重置对象)
c++
、
memory-management
、
new-operator
我想重置
一个
对象。我可以用下面的方法来做吗?1.// EDIT: The fact I used malloc instead of new doesn't carry any meaning常见问题解答:你不能,除非对象是用新的位置分配的。必须删除new创建的
浏览 68
提问于2009-07-14
得票数 26
回答已采纳
4
回答
为什么不破坏
一个
被
新放置覆盖的对象是不明确的行为呢?
c++
、
language-lawyer
、
undefined-behavior
、
object-lifetime
、
placement-new
说,“当创建对象的
块
退出(stmt.dcl)时,对具有自动存储持续时间(basic.stc.auto)的构造对象隐式
调用
析
构
函数
”。因此,这是未定义的行为,因为原始的A不再存在(即使新的a现
浏览 1
提问于2018-09-03
得票数 10
回答已采纳
点击加载更多
热门
标签
更多标签
云服务器
对象存储
ICP备案
云点播
腾讯会议
活动推荐
运营活动
广告
关闭
领券