腾讯云
开发者社区
文档
建议反馈
控制台
首页
学习
活动
专区
工具
TVP
最新优惠活动
文章/答案/技术大牛
搜索
搜索
关闭
发布
登录/注册
精选内容/技术社群/优惠产品,
尽在小程序
立即前往
为什么我的虚函数调用会失败?
虚函数调用失败通常是由于以下几个原因导致的:
继承关系错误:如果派生类没有正确地继承基类,或者派生类没有使用
virtual
关键字继承基类的虚函数,那么虚函数调用将会失败。
多重继承问题:如果派生类继承了多个基类,并且这些基类有相同的虚函数,那么虚函数调用可能会失败。
虚函数表指针错误:如果虚函数表指针没有正确地初始化,或者在对象的生命周期中被破坏,那么虚函数调用将会失败。
内存错误:如果对象的内存没有正确地分配或者释放,那么虚函数调用将会失败。
为了解决这些问题,可以尝试以下方法:
检查派生类的继承关系,确保基类的虚函数被正确地继承。
避免多重继承,或者使用虚继承来解决多重继承问题。
检查虚函数表指针的初始化和生命周期,确保它们没有被破坏。
使用内存调试工具来检查内存错误,并确保对象的内存被正确地分配和释放。
推荐的腾讯云相关产品和产品介绍链接地址:
腾讯云云服务器:
https://cloud.tencent.com/product/cvm
腾讯云数据库:
https://cloud.tencent.com/product/cdb
腾讯云存储:
https://cloud.tencent.com/product/cos
腾讯云负载均衡:
https://cloud.tencent.com/product/clb
腾讯云云硬盘:
https://cloud.tencent.com/product/cbs
腾讯云虚拟私有云:
https://cloud.tencent.com/product/vpc
腾讯云SSL证书:
https://cloud.tencent.com/product/ssl
腾讯云CDN:
https://cloud.tencent.com/product/cdn
腾讯云移动应用与游戏解决方案:
https://cloud.tencent.com/product/tbaas
腾讯云物联网通信:
https://cloud.tencent.com/product/iotcloud
腾讯云人工智能:
https://cloud.tencent.com/product/ai
腾讯云区块链:
https://cloud.tencent.com/product/tbaa
腾讯云元宇宙:
https://cloud.tencent.com/product/metaverse
相关搜索:
为什么angular会多次调用函数
为什么ByVal函数会更改我的变量?
为什么printf函数会影响我的拼写程序?
为什么useState提前调用我的函数
为什么动态调用会导致“未定义的函数”?
为什么在Firefox中调用这个jQuery函数会失败?
为什么在这种情况下我的虚函数的实现没有被调用?
为什么我的django语言环境会以这种方式失败?
为什么我的jQuery .load()会随机失败?
为什么我的UI会冻结,直到api调用终止?
相关搜索:
为什么angular会多次调用函数
为什么ByVal函数会更改我的变量?
为什么printf函数会影响我的拼写程序?
为什么useState提前调用我的函数
为什么动态调用会导致“未定义的函数”?
为什么在Firefox中调用这个jQuery函数会失败?
为什么在这种情况下我的虚函数的实现没有被调用?
为什么我的django语言环境会以这种方式失败?
为什么我的jQuery .load()会随机失败?
为什么我的UI会冻结,直到api调用终止?
页面内容是否对你有帮助?
有帮助
没帮助
相关·
内容
文章
问答
(9999+)
视频
沙龙
3
回答
如何
调用
纯
虚
函数
?
c++
、
pure-virtual
如何在这里
调用
纯
虚
函数
"pvf()“?有人能解释一下吗?...............................................................
浏览 0
提问于2013-02-20
得票数 0
回答已采纳
2
回答
C++罕见
的
运行时错误
c++
、
linker
、
runtime
、
linker-errors
我
有一个类B,它继承了带有一些
虚
函数
的
类A。类B还有一个看起来没有地址
的
虚
函数
(foo)。当我使用调试器时,它指出foo有0x00000000地址,并且当我试图进入0x00000005时,它将因访问冲突而
失败
。如果
我
将该
函数
设为非虚拟
函数
,则调试器
会
介入并正常工作,直到我到达std::vector为止。在那里,当我
调用
push_back时,它将在地址0x00000
浏览 0
提问于2011-12-02
得票数 0
回答已采纳
0
回答
Callvirt
调用
虚
方法base.Tostring时,
为什么
会
递归执行?
c#
、
编程算法
Callvirt
调用
虚
方法base.Tostring时,
为什么
会
递归执行?图片是截图《CLR via C#》中
的
6.6.1章节。这里没有明白,以
虚
方式
调用
为啥
会
递归呢? image.png
浏览 232
提问于2019-05-29
1
回答
C++中
虚
函数
的
原理
c++
、
oop
我
是C++
的
新手,
我
刚刚学习了虚拟
函数
。
为什么
浏览 0
提问于2013-07-16
得票数 5
回答已采纳
3
回答
让一个方法成为虚拟
的
有什么危险?
c#
、
unit-testing
、
mocking
、
virtual-functions
我
一直在用RhinoMocks做一些模拟,它要求模拟
的
方法是虚拟
的
。这很好,除非我们有一个自定义框架,其中包含
我
想模拟
的
方法,这些方法目前没有标记为虚拟
的
。
我
不能预见让这些方法虚拟化有任何问题,但我想知道让方法虚拟化有什么潜在
的
危险,
我
应该注意一下?
浏览 0
提问于2008-09-26
得票数 8
回答已采纳
5
回答
调用
error
的
纯
虚
函数
c++
我
觉得这很奇怪。在Sample_Base
的
ctor中,
我
调用
了bar(),它在内部
调用
了fun(),这是一个纯虚拟
函数
。
我
得到
的
错误是“纯
虚
函数
”。这很好。现在,如果
我
直接从Sample_Base
的
ctor
调用
fun(),
我
就不会得到这个错误。
我
在Ubuntu2010Beta2和Ubuntu9.10上
的
g++
浏览 0
提问于2010-01-02
得票数 6
回答已采纳
2
回答
我
可以在构造
函数
中
调用
虚
函数
吗?
c++
、
constructor
、
virtual
我
知道在构造
函数
中
调用
虚
函数
会
导致未定义
的
行为。但是,使用作用域修饰符
调用
虚
函数
可以吗?public:virtual void f(); { B() { B::f(); }
我
认为这与
调用
非虚
函数
没有什么不同是对
的
吗?还是<e
浏览 2
提问于2014-07-12
得票数 3
8
回答
当重写
虚
方法时,最佳实践是
调用
基方法吗?
c#
、
visual-studio-2010
、
polymorphism
我
注意到在使用Visual Studio覆盖C#中
的
虚
方法时,集成开发环境
会
自动添加base.Method()
调用
。另一方面,当覆盖抽象方法时,集成开发环境
会
自动添加一个NotImplementedException()。
为什么
VS在覆盖
虚
方法时会自动添加base.Method()
调用
?
调用
基方法是最佳实践吗?
浏览 1
提问于2011-11-21
得票数 5
回答已采纳
1
回答
使用多个重载和默认参数
调用
特定
的
基方法
c#
、
inheritance
、
overriding
、
overloading
、
virtual
我
在一个游戏
的
源代码之上构建,并试图用重载
的
方法和默认参数
调用
一个基本
的
虚
函数
。
我
不能改变
我
派生
的
类,需要在
我
自己
的
虚
方法
的
类定义中
调用
函数
。
我
将尝试用代码更详细地解释。首先,我们有一个基类A,它定义了一个名为Foo
的
虚
函数
,它接受一个参数
浏览 13
提问于2019-04-23
得票数 3
回答已采纳
2
回答
来自虚拟
函数
的
未定义引用
c++
、
undefined-reference
我
有一个这样
的
类:class Base { Base(); int output;return output;
我
有一些派生类,它们从自己
的
实现getInfo()中
调用
GetDetail。当我从Base.h中
的
浏览 0
提问于2011-03-17
得票数 0
回答已采纳
2
回答
为什么
需要在虚拟表中输入纯虚拟
函数
c++
我
对
虚
表
的
理解是,每当编译器在类中发现
虚
函数
时,它就会为类创建一个虚拟表,并且所有
虚
函数
的
函数
指针都会放在那个表中。virtual void myFunction() = 0 ;
浏览 1
提问于2015-07-09
得票数 0
3
回答
为什么
boost::function很慢?
c++
、
performance
、
boost
我
做了一些计时测试,其中一个测试是比较
调用
函数
的
不同方式。
我
使用各种方法
调用
了N个
函数
。
我
尝试了常规
函数
调用
、
虚
函数
调用
、
函数
指针和boost::function。
我
在Linux中使用了gcc和-O3优化来做到这一点。 正如预期
的
那样,虚拟
调用
比常规
函数
调用
浏览 0
提问于2012-12-07
得票数 4
回答已采纳
3
回答
在当前类
的
构造
函数
中
调用
在其他类中定义
的
虚
函数
c++
Question>在OtherClass
的
构造
函数
中
调用
虚
函数
有问题吗?
浏览 0
提问于2012-12-11
得票数 4
回答已采纳
4
回答
为什么
在析构
函数
中
虚
表被设置回那个级别?
c++
、
virtual-functions
根据这个问题- -
我
尝试了一些代码来检查一些语法,并发现当
调用
这样
的
析构
函数
时,它们会
调用
相关
的
虚
函数
。;}; { DoubleD E;} 正如预期
的
那样,当对象被析构时,它会
调用
正确
的
方法(例如,首先是派生最多
的
浏览 0
提问于2013-05-14
得票数 2
回答已采纳
1
回答
为什么
继承
虚
函数
的
类
的
boost::optional
会
失败
c++
、
gcc
、
boost
、
gcc-warning
、
strict-aliasing
boost::optional<>非常适合简单
的
数据类型,但一旦用于从实现接口
的
类继承
的
类,它就会在启用严格别名时
失败
。
我
非常希望启用严格别名警告,
我
使用
的
是boost版本1.44。更糟
的
是!,我会得到一个严格
的
别名警告。
我
已经检查过至少20次了。这是
我
见过
的
最奇怪
的
事情之一。看起来像是boost::optional初始化了一些东西。独立于它
浏览 0
提问于2011-06-22
得票数 5
3
回答
不带指针或引用
的
c++
虚
函数
调用
c++
、
pointers
、
reference
、
virtual
据我所知,
虚
函数
调用
通常需要指针或引用。所以我对下面的代码感到非常惊讶。runB(); }}; D d;}D 有没有人能评论一下
为什么
这个虚拟
函数
调用
会
起作用
浏览 0
提问于2014-08-13
得票数 10
3
回答
为什么
虚拟析构
函数
的
行为是这样
的
?
c++
我
读到
虚
析构
函数
必须在具有
虚
方法
的
类中声明。
我
就是不明白
为什么
一定要声明它们是虚拟
的
。
我
知道
为什么
我们需要使用虚拟析构
函数
,如下面的例子所示。
我
只想知道
为什么
编译器不为我们管理虚拟析构
函数
。关于虚拟析构
函数
的
工作有什么
我
需要知道
的
吗?下面的示例显示,如果析构
函数</e
浏览 1
提问于2012-10-23
得票数 3
回答已采纳
3
回答
纯
虚
方法
调用
c++
、
methods
、
pure-virtual
我
理解
为什么
从构造
函数
调用
虚
函数
是不好
的
,但我不确定
为什么
定义析构
函数
会
导致“纯
虚
方法”异常。代码使用常量值来减少动态分配
的
使用--这也可能是罪魁祸首。
浏览 1
提问于2010-01-01
得票数 5
回答已采纳
5
回答
c++临时-“
调用
的
纯
虚
方法”
c++
、
virtual-functions
、
temporary
、
pure-virtual
{}{ return 0;对virt()
的
调用
会给出一个“称为”
的
“纯
虚
函数
”错误。
为什么
会
这样,
我
应该怎么做?
浏览 0
提问于2013-01-24
得票数 6
回答已采纳
1
回答
在构造
函数
中
调用
虚
方法
的
替代方法是什么?
c++
、
inheritance
、
virtual
我
有一个要用作接口
的
类。
我
希望在创建实现此接口
的
对象时,
会
自动
调用
一个方法(在每个实现中都是不同
的
)。那么,有没有办法以另一种方式实现想要
的
行为呢?
浏览 7
提问于2014-04-17
得票数 0
点击加载更多
扫码
添加站长 进交流群
领取专属
10元无门槛券
手把手带您无忧上云
相关
资讯
揭秘:为什么你的电商创业之路会失败?
为什么我的Excel函数又双叒叕报错了!
手机上瘾症:为什么会日渐成为学生失败的主要原因
从安卓之父到摇滚之声,那些高开低走的手机品牌为什么会失败?
马云的无人超市为什么会失败?啥都考虑进去了,唯独忽略了这点!
热门
标签
更多标签
云服务器
即时通信 IM
ICP备案
对象存储
实时音视频
活动推荐
运营活动
广告
关闭
领券