腾讯云
开发者社区
文档
建议反馈
控制台
首页
学习
活动
专区
工具
TVP
最新优惠活动
文章/答案/技术大牛
搜索
搜索
关闭
发布
登录/注册
精选内容/技术社群/优惠产品,
尽在小程序
立即前往
文章
问答
(9999+)
视频
沙龙
11
回答
为什么我们在
C++
中
需要一个纯虚拟
析
构
函数
?
c++
、
destructor
、
pure-virtual
我理解使用虚拟
析
构
函数
的
必要性。但是为什么我们需要一个纯
的
虚拟
析
构
函数
呢?在
C++
的
一篇文章
中
,作者提到,当我们想要使
类
抽象时,我们使用纯虚拟
析
构
函数
。但是我们可以通过将任何成员
函数
作为纯
虚
函数
来使
类
成为抽象
的
。 所以我
的
浏览 126
提问于2009-08-02
得票数 168
回答已采纳
3
回答
为什么虚拟
析
构
函数
的
行为是这样
的
?
c++
我读到
虚
析
构
函数
必须在具有
虚
方法
的
类
中
声明。我就是不明白为什么一定要声明它们是虚拟
的
。我知道为什么我们需要使用虚拟
析
构
函数
,如下面的例子所示。我只想知道为什么编译器不为我们管理虚拟
析
构
函数
。关于虚拟
析
构
函数
的
工作有什么我需要知道
的
吗
浏览 1
提问于2012-10-23
得票数 3
回答已采纳
4
回答
为什么纯虚拟
析
构
函数
的
实现必须是空
的
?它应该是内联
的
吗
?
c++
我在其他线程
中
读到,当你实现一个纯虚拟
析
构
函数
(是的,它可以有一个实现)时,它必须是空
的
,并且应该(?)内联。它应该是空
的
吗
?如果有,原因何在?应该是内联
的
吗
?如果有,原因何在?编辑:这是一个纯虚拟描述器
的
实现方式: virtual ~A() = 0; //implementation }
浏览 1
提问于2011-02-15
得票数 13
回答已采纳
1
回答
从
c++
中派生
类
的
析
构
函数
调用
虚
函数
c++
下面是我
的
c++
代码片段 class A { virtual void method() {{ } 我了解到,从构造
函数
或
析
构
函数
调用任何
虚
函
浏览 5
提问于2020-06-10
得票数 2
回答已采纳
5
回答
使用向上转换时
的
虚拟
析
构
函数
c++
、
inheritance
、
virtual-destructor
当至少有一个
类
方法是
虚
的
时,每个人都说
析
构
函数
应该是
虚
的
。}; { cout << "Exiting main" << endl; de
浏览 2
提问于2011-05-13
得票数 3
回答已采纳
5
回答
为什么基
类
的
析
构
函数
应该是
虚
的
?
c++
、
inheritance
在
C++
中
:为什么基
类
的
析
构
函数
应该是
虚
的
?
浏览 0
提问于2011-05-04
得票数 13
1
回答
C++
:
析
构
函数
可
以是
类
中
唯一
的
虚
函数
吗
?
c++
、
c++11
、
destructor
、
virtual-destructor
我读到只有当
类
中有
虚
函数
时,
析
构
函数
才应该被声明为
虚
函数
。这是必需
的
吗
?或者有没有可能不这样做?
浏览 24
提问于2021-04-21
得票数 1
回答已采纳
7
回答
如果我将一个基
类
的
析
构
函数
从非虚改为
虚
,会发生什么?
c++
、
virtual
、
destructor
、
virtual-destructor
我遇到了一个基
类
,它
的
析
构
函数
是非虚
的
,尽管基
类
有一个
虚
函数
fv()。这个基
类
也有很多子类。这些子类中有许多定义了自己
的
fv()。 我不知道在程序
中
如何使用基
类
和子类
的
细节。我只知道程序运行得很好,即使基
类
的
析
构
函数
也应该是
虚
的</
浏览 3
提问于2016-08-22
得票数 21
1
回答
带有联合
的
C++
初始化器列表,为什么结果不同?
c++
、
pointers
、
initialization
、
virtual
、
unions
int argc, char**argv) { std::cout << r.s << r.kau << std::endl;我得到了预期
的
结果设置为以下内容:它应该被替换为等效值,它不再工作,而是打印:generic也就是说,它执行nih
中
的
泛型方法我试用了带有-std=c++0x选项
的</e
浏览 0
提问于2012-01-12
得票数 1
回答已采纳
6
回答
为什么定义一个纯
虚
函数
是有意义
的
?
c++
、
class
、
polymorphism
、
virtual-functions
斯科特在Effective
C++
上说,第三版,pg。43要创建一个抽象
类
,我们只需要给它一个纯虚拟
析
构
函数
:public:virtual ~AWOV() = 0; // declare pure virtual destructor然后,他继续说,有一个转折:我们必须为纯虚拟
析
浏览 0
提问于2012-10-16
得票数 22
回答已采纳
4
回答
如果使用基指针声明,为什么简单
析
构
函数
不删除派生对象
c++
、
inheritance
是否使得派生对象包含基类型
的
子对象,并且指针p实际上指向派生对象
的
基部分(子对象)。因此,当delete p运行时,它将只能删除派生
类
的
对象
的
基
类
部分,并且对于派生部分
的
销毁将具有未定义
的
行为。因此,为了避免内存泄漏,我们需要设法同时调用对象
的
基
析
构
函数
和派生
析
构
函数
,以避免内存泄漏!是这样
吗
?这就是我们需要虚
浏览 0
提问于2013-12-14
得票数 1
3
回答
为什么抽象
类
的
默认destuctor不是虚拟
的
?
c++
、
virtual-destructor
考虑一下{ virtual void foo () = 0;在这一点上,很明显,A是一个抽象
类
,永远不会自己实例化。那么为什么标准不要求自动生成
的
析
构
函数
也必须是虚拟
的
呢? 每当我需要在我
的
接口
类
中
定义一个虚拟
的
虚拟描述器时,我都会问自己这个问题,但我不明白为什么commetee不这样做。所以问题是:为什么在抽象
类
中生成
的
析<
浏览 14
提问于2012-11-15
得票数 8
回答已采纳
1
回答
为什么
C++
try/catch不捕获“纯虚拟调用”异常?
c++
、
winapi
、
exception
、
com
下面的
函数
是在2017
中
编译
的
。在这个
函数
中
,CAttributedObject是一个实现IObjectID接口
的
COM
类
。
函数
必须处理有关事件
的
通知。参数pCaller是指向类型为CAttributedObject
的
对象
的
指针,该对象是事件
的
源。通知通过其消息队列发送到主线程。预计在通知到达时,可以销毁pCaller所指向
的
对象;这就是为什么在代码
中</
浏览 1
提问于2019-09-05
得票数 1
回答已采纳
3
回答
清理后删除此文件
c++
、
this
、
destructor
、
delete-operator
SubTest() { }test->finalize(); 我很难避免在我
的
类
的
析
构
函数
中
调用
虚
函数
(我讨厌
C++
一开始就强迫我这么做)。在我所有的子类
中
覆盖
析
构
函数
似乎比在基
类
中使用一些
浏览 3
提问于2013-12-14
得票数 0
3
回答
C++
虚拟
析
构
函数
c++
、
virtual-destructor
如果我有一个基
类
和一个派生
类
,并且我删除了父
虚
类
中
的
析
构
函数
,但实例化了一个子类类型
的
对象,当它被销毁时,它会调用父
析
构
函数
吗
(因为是
虚
的
)?如果我还在派生
类
中
声明了
析
构
函数
,它是否会同时调用
析
构
浏览 2
提问于2011-04-26
得票数 3
回答已采纳
3
回答
为什么我收到错误消息"error C2259:... cannot instantiate abstract“?
c++
、
design-patterns
、
factory-pattern
任何帮助都是有价值
的
。我正在处理一个
C++
工厂模式,我得到了这个错误。visual studio 2010\projects\cst276lab_3\guitar.hpp(456):错误C2259:'ElectricGuitarComponentFactory‘:无法实例化抽象
类
这是我
的
代码: //////////////////
浏览 0
提问于2011-02-14
得票数 0
3
回答
使用虚拟
析
构
函数
,我需要显式地为每个子类声明一个虚拟
析
构
函数
吗
?
c++
、
virtual-destructor
我有一个场景,我正在编写一些深层
的
面向对象
的
代码,具有多层抽象基
类
,我想知道是否必须为每个抽象基
类
显式声明一个
析
构
函数
。 编译器是否会生成一个已经是虚拟
的
缺省值,或者我必须告诉它?
浏览 0
提问于2011-04-10
得票数 21
回答已采纳
2
回答
未在
C++
中
调用默认构造
函数
c++
在下面的代码
中
,我使用我无法理解
的
调试器进行跟踪 为什么从不调用B b2()而是跳过它。为什么auto_ptr仅在派生创建
的
对象时才调用基本(A)
析
构
函数
(B)?
浏览 16
提问于2019-03-26
得票数 -1
2
回答
虚拟
析
构
函数
同时调用派生
析
构
函数
和基
析
构
函数
c++
、
derived
、
virtual-destructor
我在理解
虚
函数
时遇到了问题。当我重载一个
虚
函数
时,新
的
派生
函数
是否只被调用?或者同时使用派生
函数
和基
函数
?因为我注意到当调用虚拟
析
构
函数
时,基
析
构
函数
和派生
类
析
构
函数
也会被调用。
浏览 0
提问于2013-02-18
得票数 1
回答已采纳
12
回答
我可以在
C++
类
中使用`abstract`关键字
吗
c++
、
keyword
我们可以在
C++
类
中
编写抽象关键字
吗
?
浏览 0
提问于2009-08-19
得票数 28
点击加载更多
扫码
添加站长 进交流群
领取专属
10元无门槛券
手把手带您无忧上云
相关
资讯
C/C+编程笔记:一文带你读懂C+面向对象和Java面向对象的区别
结构体对齐,字节对齐
关于C+的虚函数和多态,你觉得很难?首先你需要了解这三点!
C+之虚函数
掌握这些技巧,让你的程序性能和可维护性双双提升!
热门
标签
更多标签
云服务器
即时通信 IM
ICP备案
对象存储
实时音视频
活动推荐
运营活动
广告
关闭
领券