腾讯云
开发者社区
文档
建议反馈
控制台
首页
学习
活动
专区
工具
TVP
最新优惠活动
文章/答案/技术大牛
搜索
搜索
关闭
发布
登录/注册
精选内容/技术社群/优惠产品,
尽在小程序
立即前往
文章
问答
(9999+)
视频
沙龙
2
回答
返回
在
循
环中
创建
的
变量
会
导致
析
构
函数
被
调用
两次
c++
、
destructor
、
copy-elision
我正在尝试理解C++标准对从
函数
返回
对象时应该如何/何时
调用
析
构
函数
有什么规定-考虑下面这个简单
的
结构和两个
函数
: #include <iostream>struct foo(i == 5) } bar(); return 0; } 我正在尝试跟踪
析
构</em
浏览 27
提问于2020-04-27
得票数 1
回答已采纳
2
回答
C++
析
构
函数
调用
错误
的
对象?
c++
、
destructor
在这种情况下,不仅类
会
导致
两次
删除指定对象
的
风险,而且通过
在
赋值之前不删除指定对象所指向
的
对象来
创建
内存泄漏。 我用粗体表示
的
最后一部分是我决定测试
的
原因。我最初
的
想法是
创建
一个简单
的
类,它存储一个int (作为测试目的
的
标识符),并重载构造
函数
和
析
构
函数
,以查看何时以及是否正在
浏览 0
提问于2019-01-16
得票数 0
回答已采纳
2
回答
在
插入到地图中时,
析
构
函数
被
多次
调用
c++
、
c++11
、
map
、
destructor
在下面的代码中,
析
构
函数
被
多次
调用
:#include<map> }} 我使用不同
的
方式在对象中插入值一种是使用insert()
函数</em
浏览 2
提问于2013-06-25
得票数 1
回答已采纳
6
回答
为什么我们不能释放new分配
的
内存呢?
c++
、
memory-management
、
new-operator
我知道free()不会
调用
析
构
函数
,但是除了成员
变量
不能
被
正确
析
构
之外,这还会
导致
什么呢? 另外,如果我们delete一个由malloc分配
的
指针,结果
会
怎样
浏览 0
提问于2011-04-22
得票数 2
回答已采纳
1
回答
为什么从
函数
返回
的
对象不
调用
析
构
函数
?
c++
、
memory-management
、
destructor
我在想,当
函数
将堆栈上
的
对象
返回
给
调用
函数
时,
调用
函数
会
获得原始对象
的
副本,但一旦堆栈展开,原始对象
的
析
构
函数
就会被
调用
。但是在下面的程序中,
析
构
函数
只
被
调用
一次。我预计它会被
调用
两次
。int main() MyC
浏览 1
提问于2009-03-30
得票数 18
回答已采纳
1
回答
C++:由于
函数
返回
的
类引用,构造
函数
和
析
构
函数
不成对
c++
我们都知道,构造
函数
和
析
构
函数
是成对
的
。 但是下面的代码不是这样
的
,构造
函数
被
调用
了
两次
,而
析
构
函数
只
被
调用
了一次!
的
构造器和
析
构
函数
都会被
调用
一次,而且只
被
调用
一次。当我运行代码时,它
的</em
浏览 0
提问于2012-03-02
得票数 0
回答已采纳
4
回答
为什么我们说当对象超出作用域时
调用
析
构
函数
?
c++
、
destructor
我了解到,当一个对象超出作用域时会
调用
析
构
函数
,并且
析
构
函数
也
会
删除这些对象。好吧,但这是怎么回事? 我显式地
调用
析
构
函数
,如果它删除对象,那么为什么要隐式
调用
析
构
函数
?尽管现在没有对象,因为它已经
被
显式
析
构
函数
调用
删除了
浏览 8
提问于2015-06-07
得票数 0
回答已采纳
4
回答
使std::array仅对数组
的
一部分
调用
析
构
函数
c++
、
c++11
、
stdarray
创建
和使用std::array没有问题,但在销毁时,它将在所有元素上
调用
析
构
函数
。 但是我
的
数组经常不是完全满
的
,这会
导致
对空元素
的
析
构
函数
调用
。通常不是问题,因为它们将使用默认构造
函数
构造,但我希望通过减少大小计数来删除元素,这意味着在数组中保留一个“已用”元素,这会
导致
销毁问题。通过
在
元素上
调用</
浏览 0
提问于2016-03-02
得票数 2
2
回答
从
析
构
函数
停止线程
的
正确方法
c++
、
destructor
Stop方法设置一个事件并等待,直到线程终止(通过线程句柄上
的
WaitForSingleObject )。
在
MyThread
的
析
构
函数
中,我
调用
了Stop方法。A
的
析
构
函数
,然后再
调用
MyThread
的
析
构
函数
,对吧?因此,如果线程
在
ThreadFunction中执行for-loop,那么S
浏览 44
提问于2012-08-09
得票数 1
回答已采纳
4
回答
为什么
在
“
返回
0”之后
调用
析
构
函数
?
c++
、
destructor
return 0;指纹:Derived dtor // printed by 'return 0' 我不知道第二句是从哪里来
的
。
浏览 2
提问于2019-03-07
得票数 1
回答已采纳
4
回答
显式
调用
c++对象
的
析
构
函数
c++
、
destructor
、
object-lifetime
、
explicit-destructor-call
~box();} 我是以上述方式编写代码
的
。我希望
析
构
函数
~box()只会被
调用
一次。但实际上,指示符“
析
构
函数
已执行”被打印了
两次
。有什么线索吗?
浏览 12
提问于2017-10-28
得票数 1
4
回答
返回
Obj&
在
C++中,临时指针会发生什么?
c++
Dummy(int y):x(y) } { }
函数
Dummy(5);}Dummy* get = &getRef();get->~Dummy(); 我
的
目的是从
函数
中获取一个动态对象实例,然后将它传递到
浏览 5
提问于2015-05-30
得票数 0
回答已采纳
1
回答
C++中
的
双
析
构
函数
调用
c++
、
oop
、
destructor
、
fluent-interface
\n");} 类Configurator只
在
析
构
函数
中打印字符串(我希望这样做,这样就不会强制
调用
助手方法来
调用
操作)。方法将字符串追加到私有字段字符串。方法PrepareConfigurator
创建
Configurator。方法PrepareWithSomeAppend
调用
PrepareConfigurator并
调用
Append方法并从
函数
返回
对象。Prep
浏览 3
提问于2020-12-05
得票数 0
4
回答
析
构
函数
被
调用
两次
,而没有复制、构造或赋值操作符
被
调用
。
c++
、
destructor
=(const A& another) std::cout << "Assignment operator= called" << std::endl;};Constructor calledDestructor called Destructor called
在
整个过程中,没有
调用</e
浏览 5
提问于2011-05-31
得票数 7
回答已采纳
10
回答
析
构
函数
在
显式
调用
时
被
调用
两次
c++
、
destructor
我用这段代码
在
C++中试验
析
构
函数
:{ ~temp() { std::cout << "Hello!"正在打印
两次
。
析
构
函数
的
调用
不应该释放对象吗?当
析
构
函数
超出作用域时,不应该再次
调用
它。还是有其他
的
概念呢?
浏览 0
提问于2012-08-09
得票数 23
回答已采纳
3
回答
使用exit和全局对象
c++
我在下面的程序中
调用
析
构
函数
中
的
exit()。当我
在
main()内部
创建
一个类型为sample
的
对象时,只
调用
一次
析
构
函数
,程序就会正常退出。但是当我
创建
一个类型为sample
的
全局对象时,"Destructing..“无限地打印出来。有谁能解释一下是怎么做到
的
吗?
浏览 2
提问于2012-04-30
得票数 4
回答已采纳
3
回答
游戏中
的
C++分割错误
c++
、
segmentation-fault
我正在使用SDL
在
c++中制作一个游戏。我有一个main
函数
,它只
调用
run游戏
函数
。运行游戏
函数
运行游戏,并在退出时
返回
0。我尝试
在
每次
调用
之前和之后打印内容,seg错误应该在
返回
0时发生;{ SDL_Quit();
浏览 2
提问于2013-06-18
得票数 0
回答已采纳
5
回答
双重释放错误
c++
、
c
、
memory
、
free
、
dealloc
我为一个名为copy()
的
对象
创建
了一个
函数
,它应该只
返回
一个具有所有相同值
的
对象实例-result.setNumOfCols(num_cols); } 我
的
析
构
函数
看起来像这样-
浏览 0
提问于2011-08-30
得票数 0
回答已采纳
6
回答
返回
值优化- C++
析
构
函数
调用
c++
、
nrvo
、
rvo
下面的代码
调用
析
构
函数
4次:using namespace std; public: A(){cout<<"A"<<endl;}我在想应该只有三次
析
构
函数
调用
。
浏览 43
提问于2012-02-12
得票数 5
10
回答
将new[]与delete配对怎么可能只
导致
内存泄漏?
c++
、
memory-management
、
undefined-behavior
首先,根据C++标准,对任何使用new[]分配
的
对象使用delete都是未定义
的
行为。
在
Visual C++ 7中,这样
的
配对可能
会
导致
两种后果之一。如果类型new[]'ed有简单
的
构造
函数
和
析
构
函数
,VC++只是使用new而不是new[],并且使用delete可以很好地处理该块- new只
调用
“分配内存”,delete只
调用
“释放内存”。如果类型ne
浏览 0
提问于2009-12-16
得票数 28
回答已采纳
点击加载更多
扫码
添加站长 进交流群
领取专属
10元无门槛券
手把手带您无忧上云
相关
资讯
Visual Studio:优化了复制/移动省略
当对象释放时,避免析构函数调用两次
你踩过几种C+内存泄露的坑?
C+堆,栈,RAII
比较 上下文管理器及构造/析构函数
热门
标签
更多标签
云服务器
ICP备案
实时音视频
即时通信 IM
对象存储
活动推荐
运营活动
广告
关闭
领券