腾讯云
开发者社区
文档
建议反馈
控制台
登录/注册
首页
学习
活动
专区
工具
TVP
最新优惠活动
文章/答案/技术大牛
搜索
搜索
关闭
发布
精选内容/技术社群/优惠产品,
尽在小程序
立即前往
文章
问答
(9999+)
视频
沙龙
1
回答
析
构
堆栈
对象
与
删除
具有
虚
函数
的
非
最终
类
的
堆
分配
对象
、
、
、
假设你有一个带有
虚
函数
和非虚
析
构
函数
的
派生
类
,如下所示: class Basepublic:}; { Derived() {}}; 假设您创建了一个Derived
类
的
堆
分配
对象
,并使用delete关键字将其<e
浏览 19
提问于2021-04-08
得票数 1
回答已采纳
5
回答
如何故意泄漏
非
指针
堆
分配
的
对象
、
、
假设我有
类
Foo,我通过'new‘关键字在
堆
中
分配
这个
类
。假设Foo有
非
指针数据成员栏。Bar虽然不是指针,但由于它是Foo
的
一部分,所以它本身就在
堆
中。当我
删除
Foo
对象
时,它将被正确地释放--即使我声明自己
的
Foo
析
构
函数
不(经常,也不应该)
删除
栏。 是否有像Bar这样
的
数据成员
的
术语,虽然在
浏览 0
提问于2013-04-23
得票数 0
回答已采纳
3
回答
为什么在g++中缺少虚拟d-tor不会破坏派生
类
的
堆栈
分配
成员?
、
() std::auto_ptr<Foo> foo(new Bar);我希望得到以下输出:Message: Foo但实际上(代码是用gcc编译
的
)并不打印Message: Bar,因此据我所知,barMessage没有被正确地
析
构
。AFAIK非虚d-tor只影响对派生
类
的
dtor
的
调用-它永远不会被调用,但是派生
类
的
堆栈
分配
的
成员
浏览 4
提问于2012-03-13
得票数 0
回答已采纳
4
回答
如果使用基指针声明,为什么简单
析
构
函数
不
删除
派生
对象
、
int main() delete p;} 我有点困惑,为什么在这里
删除
p不会
删除
派生
对象
?是否使得派生
对象
包含基类型
的
子
对象
,并且指针p实际上指向派生
对象
的
基部分(子
对象
)。因此,当delete p运行时,它将只能
删除
派生
类
的
对象
的
基
类</
浏览 0
提问于2013-12-14
得票数 1
2
回答
双重结构是未定义
的
行为吗?
、
、
、
、
在我们
的
代码库中,使用了一个内存块池,并且在“
分配
”时使用“放置新”来构造
对象
。不过,我忽略了
析
构
函数
调用,发现允许“双重构造”很奇怪,并且不知道在同一个
对象
上再次调用构造
函数
是否是未定义
的
行为。在C++11 3.8.4 basic.life中,它读取 程序可以通过重用
对象
占用
的
存储或显式调用
类
类型
的
对象
的
析
<
浏览 5
提问于2020-11-10
得票数 4
回答已采纳
6
回答
虚拟
析
构
函数
:
非
动态
分配
内存时是否需要?
、
如果我
的
类
没有动态
分配
内存,我们需要一个虚拟
析
构
函数
吗?private: int d; B();}; 在这种情况下,我们需要将A
的
析
构
函数
标记为虚拟
的
吗
浏览 2
提问于2010-01-15
得票数 20
回答已采纳
4
回答
使用私有
析
构
函数
删除
动态
分配
的
对象
、
、
因此,我遇到了一个代码片段,它演示了如果我们想强制对任何
类
对象
进行动态
分配
,我们应该将它
的
析
构
函数
设置为私有。如何正确管理
具有
私有
析
浏览 3
提问于2019-10-14
得票数 2
回答已采纳
1
回答
为什么即使
删除
了
析
构
函数
,我也可以创建一个匿名联合呢?
、
、
、
来自C++ Primer (13.1.6): 编译器将不允许我们定义变量或创建
具有
已
删除
析
构
函数
的
类型
的
临时变量。此外,我们不能定义
具有
类型为已
删除
析
构
函数
的
成员
的
类
的
变量或临时变量。如果成员
具有
已
删除
的
析
构
函数
浏览 9
提问于2016-01-23
得票数 2
5
回答
有没有办法让C++
类
在开始执行
析
构
函数
之前自动执行方法?
、
、
为了做正确
的
事情,这个清理方法需要访问完全形成
的
对象
(包括子类数据),所以我不能只在我自己
的
类
的
析
构
函数
开始时调用Cleanup(),因为当我
的
类
的
析
构
函数
被调用时,任何子类
的
析
构
函数
都已经完成了,它们可能已经释放了显而易见
的
解决方案是要求
浏览 3
提问于2012-06-01
得票数 2
回答已采纳
2
回答
使用带有多态性
的
默认构造
函数
合适吗?
、
我基本上有这样
的
东西:{ CGlToolBase(void) virtual void OnMouseDownvoid OnLDoubleClick(CGlEngine &glEngine, WPARAM wParam, LPARAM lParam);};CGlToolBase *tool = new CGlToolSelect;
浏览 3
提问于2010-08-01
得票数 2
回答已采纳
1
回答
带有联合
的
C++初始化器列表,为什么结果不同?
、
、
、
、
int argc, char**argv) { std::cout << r.s << r.kau << std::endl;我得到了预期
的
结果设置为以下内容:它应该被替换为等效值,它不再工作,而是打印:generic也就是说,它执行nih中
的
泛型方法我试用了带有-std=c++0x选项
的
gcc 4.6
浏览 0
提问于2012-01-12
得票数 1
回答已采纳
1
回答
C++ /A
类
:公共B,公共C/B在~C()上发生了什么?
、
、
、
、
() throw() if( 0 == --this->_refCount ) delete this; }但是我
的
对象
不仅仅是indentifier in readonly mode." ); }{假设我创建了一个
对象
,当
类
HeapValue
删除
自身时到底会发生什么?我假设
浏览 0
提问于2014-07-31
得票数 0
2
回答
具有
非虚拟
析
构
函数
的
C++ dll接口
类
、
、
、
我开发了一个windows应用程序,加载动态链接库插件,我希望这些插件是可编译
的
其他编译器而不是我
的
(MinGW) 所以我实现了一个插件接口
类
PluginInterface,它只有纯
虚
函数
。该插件导出两个C
函数
,一个用于创建一个从PluginInterface派生
的
对象
并在其上返回一个指针,另一个用于
删除
该
对象
。问题是,如果我对PluginInterface使用了一个虚拟
析
构
<em
浏览 31
提问于2015-06-17
得票数 0
1
回答
在没有动态内存
的
世界里,我需要虚拟
析
构
函数
吗?
、
、
、
、
当从基
类
指针(潜在地)
析
构
对象
时,需要使用虚拟
析
构
函数
。 考虑一个没有动态内存
的
程序,就像在嵌入式系统中经常发现
的
那样。在这里,使用new或delete会触发链接器错误,因为所需
的
底层
分配
器没有实现。因此,开发人员只使用静态
分配
的
对象
(在bss/data部分)或自动
分配
的
对象
(通常在
浏览 22
提问于2018-10-09
得票数 1
3
回答
为什么虚拟
析
构
函数
的
行为是这样
的
?
我读到
虚
析
构
函数
必须在
具有
虚
方法
的
类
中声明。我就是不明白为什么一定要声明它们是虚拟
的
。我知道为什么我们需要使用虚拟
析
构
函数
,如下面的例子所示。我只想知道为什么编译器不为我们管理虚拟
析
构
函数
。关于虚拟
析
构
函数
的
工作有什么我需要知道
的
吗?下面的
浏览 1
提问于2012-10-23
得票数 3
回答已采纳
8
回答
堆栈
与
堆
C++
、
我刚刚问了一个关于
堆栈
变量和
堆
变量是如何工作
的
问题。根据我
的
理解,
堆栈
变量是在
函数
返回后将被
删除
的
变量,而
堆
变量是持久
的
。但我真正困惑
的
是如何在
函数
中
分配
堆
变量: MyObject newObject(a);假设我有一个用于My
浏览 2
提问于2011-12-12
得票数 20
回答已采纳
3
回答
对象
在~Derived()调用和~Base()调用之间
的
状态
、
、
问题} Base *bd = new Derived;
浏览 1
提问于2012-06-28
得票数 6
回答已采纳
5
回答
使用向上转换时
的
虚拟
析
构
函数
、
、
当至少有一个
类
方法是
虚
的
时,每个人都说
析
构
函数
应该是
虚
的
。}; { cout << "Exiting main" << endl;}
浏览 2
提问于2011-05-13
得票数 3
回答已采纳
2
回答
虚拟
析
构
函数
同时调用派生
析
构
函数
和基
析
构
函数
、
、
我在理解
虚
函数
时遇到了问题。当我重载一个
虚
函数
时,新
的
派生
函数
是否只被调用?或者同时使用派生
函数
和基
函数
?因为我注意到当调用虚拟
析
构
函数
时,基
析
构
函数
和派生
类
析
构
函数
也会被调用。
浏览 0
提问于2013-02-18
得票数 1
回答已采纳
5
回答
我
的
基
类
中有一个虚拟
析
构
函数
和一个数组。我怎么才能让它工作呢?
、
} 我
的
基
类
中有一个虚拟
析
构
函数
和一个数组。如果基
类
析
构
函数
被派生
类
析
构
函数
覆盖,则基射线不会被
删除
。什么是好
的
解决方案?
浏览 1
提问于2012-01-31
得票数 1
回答已采纳
点击加载更多
扫码
添加站长 进交流群
领取专属
10元无门槛券
手把手带您无忧上云
相关
资讯
虚析构与纯虚析构(C+)
掌握这些技巧,让你的程序性能和可维护性双双提升!
C+之虚函数
关于C+的虚函数和多态,你觉得很难?首先你需要了解这三点!
C+中智能指针及其类型的介绍
热门
标签
更多标签
云服务器
ICP备案
对象存储
腾讯会议
云直播
活动推荐
运营活动
广告
关闭
领券