腾讯云
开发者社区
文档
建议反馈
控制台
登录/注册
首页
学习
活动
专区
圈层
工具
MCP广场
文章/答案/技术大牛
搜索
搜索
关闭
发布
文章
问答
(5686)
视频
沙龙
2
回答
VTBL在单
继承
和多
继承
中的差异
c++
、
inheritance
、
multiple-inheritance
、
vtable
我在课堂上学到,在单一
继承
的情况下,VTBL包括类可以响应的所有虚拟
函数
。下面的图像应该说明这一点。 在
多重
继承
中,我被教导VTBL包括所有在该类中首次定义的
虚
函数
或在该类中被重写的
虚
函数
。为什么在
多重
继承
的情况下,VTBL不能包含类可以响应的所有虚拟
函数
(就像在单一
继承
的情况下一样)?这应该会加速这个过程,因为我们不必在整个
继承
层次结构中查找运行时的方法实
浏览 0
提问于2013-09-14
得票数 2
1
回答
如果一个父类是一个接口,是否可以使用
多重
继承
?
c++
、
inheritance
、
multiple-inheritance
、
virtual-functions
如果一个父类是一个接口(只包含带有虚拟析构
函数
的纯虚拟
函数
),那么可以使用
多重
继承
吗?接口类(黄色)只有纯
虚
函数
和
虚
销毁,所以当我通过工厂类创建CDog、CCat时,不会出现模棱两可的问题。CDog有两个vtable(来自IDog和CPet),但在
虚
函数<
浏览 3
提问于2012-05-13
得票数 2
回答已采纳
1
回答
如果我将派生指针转换为基指针,是否保证这两个指针具有相同的值?
c++
、
inheritance
、
polymorphism
假设我没有使用
多重
继承
或虚拟
继承
,C++标准是否保证如果我将Derived*转换为Base*,两个指针将具有完全相同的值?例如,即使Derived和/或Base具有
虚
函数
,以下代码是否始终调用success()?
浏览 0
提问于2013-04-14
得票数 1
回答已采纳
6
回答
多重
继承
+虚拟
函数
混乱
c++
、
multiple-inheritance
、
virtual-functions
、
diamond-problem
我有一个菱形
多重
继承
场景,如下所示: / \ \ /公共父
函数
A定义了一个虚拟
函数
fn()。这在虚拟
函数
的一些其他方法中是可能的吗?
浏览 0
提问于2009-03-05
得票数 19
2
回答
多重
继承
的
虚
函数
表
c++
、
multiple-inheritance
、
virtual-functions
virtual int a();int main() cout<<sizeof(A)<<sizeof(B);印出来 class B似乎有自己的新的虚拟
函数
表
浏览 3
提问于2014-08-27
得票数 6
回答已采纳
2
回答
纯
虚
函数
和
多重
继承
c++
、
multiple-inheritance
、
pure-virtual
我有一个(保证树形的)级联类,比如 ...}; 我想在字母类A、B、C中实现foo(),我需要在哪里声明foo?(虚拟?纯?)我需要在中间层、中间层和higher_up中实现(微不足道的)实现吗?
浏览 8
提问于2015-02-25
得票数 0
2
回答
虚
函数
实现与
多重
继承
c++
、
polymorphism
、
multiple-inheritance
、
virtual-functions
我有一个类F,它需要实现两个
函数
f()和g()。我使用两个不同的类来实现这些
函数
。如果我想要创建一个类Test的对象,并且希望根据我的主
函数
中的参数选择A和B类,我如何做到这一点?
浏览 3
提问于2015-06-26
得票数 1
3
回答
多重
继承
和纯
虚
函数
c++
、
virtual
、
multiple-inheritance
、
diamond-problem
interface_base::foo() 我已经尝试过了,我想让'interface -> interface_base‘和'implementation_base -> interface_base’
继承
是虚拟的附注:为了使代码更简短,我故意省略了虚拟析构
函数
。请不要告诉我把它们放进去,我已经知道了:)
浏览 4
提问于2012-01-02
得票数 18
回答已采纳
1
回答
通过void向下转换/向上转换*
c++
、
casting
我有一个类层次结构,它包含
虚
函数
、
多重
继承
,但不包括
虚
继承
。整个层次结构都源于一个基类B。一个类最多出现在层次结构中。
浏览 15
提问于2019-12-18
得票数 1
回答已采纳
1
回答
在像c++这样的语言中,多态性是如何在底层实现的?
c++
、
polymorphism
我在一本书中读到,多态性是通过三个级别的指针(使用vtable)在c++中实现的,但是在c++中有其他实现它的方法吗?
浏览 3
提问于2013-06-02
得票数 4
回答已采纳
2
回答
带有虚拟指针和
继承
的cpp类大小
c++
、
virtual-table
; // 4} 在32位系统linux中 为什么sizeof(B)和sizeof(C)都是4 对于类C,它有一个
虚
函数
,所以在类C中隐藏了一个4字节的
虚
指针 但为什么B类的大小也是4,我认为它在B类中有两个指针,一个是B本身的,因为B类有一个
虚
函数
,一个是A的。
浏览 34
提问于2020-01-04
得票数 0
回答已采纳
1
回答
对于
多重
继承
,非抽象但无状态的类与纯抽象类一样安全吗?
c++
、
virtual
、
abstract
在大多数书籍和文章中,执行
多重
继承
的唯一“安全”(或者至少是唯一建议的)方式是使用纯抽象基类(您可以将其称为虚拟接口)的虚拟
继承
。原因主要是为了避免菱形问题,在该问题中,可能会对数据成员的值或非纯
虚
函数
的实现状态产生歧义。 纯抽象基类不受这两者的影响(没有数据成员,没有非纯虚拟),虚拟
继承
甚至解决了基类的实际内存地址的多义性。但给出这样的解释:如果歧义只出现在“state”的形式上(例如数据成员、静态
函数
变量),那么一个无状态的非抽象类(甚至可能包含所有的“final”
浏览 0
提问于2019-04-04
得票数 4
3
回答
实现具有
多重
继承
的纯
虚
函数
c++
、
inheritance
、
multiple-inheritance
、
pure-virtual
假设有这样的接口: public: };class B:public A{ virtual foo(){} //Foo implemented by B 最后是一个以A和B类为基类的C类:};
浏览 0
提问于2012-12-27
得票数 5
回答已采纳
3
回答
vptr是否曾经不位于对象的开头?
c++
、
visual-c++
、
rtti
、
virtual-functions
、
dynamic-cast
它的一个参数是LONG VfDelta,它被描述为“对象中
虚
函数
指针的偏移量”。 vptr始终位于对象的起始处,因此偏移将始终为零。
浏览 0
提问于2012-09-19
得票数 3
2
回答
如何在Visual C++中检查vtable?
c++
、
visual-c++
、
inheritance
假设一个人
继承
了一个复杂的代码库(在Visual C++中,假设是2003年或更高版本),它有一个庞大而复杂的
继承
图。假设它很深,并且有很多
虚
函数
,甚至可能还有
多重
继承
。(是的,有点维护的噩梦)。任何试图将这个类层次结构重构为更合理的东西的尝试都需要知道每个类使用每个
虚
函数
的哪个实现。,它派生自基类B2,等等-它显然会有一个vtable对应的类,它将显示类似(伪vtable)的内容:B3::F2L1::F4.
浏览 3
提问于2008-11-19
得票数 4
3
回答
通过删除基类析构派生类
c++
、
class
、
inheritance
、
pointers
在它的析构
函数
中这是可能的吗?或者我必须实现一个虚拟的销毁()方法或类似的东西吗?
浏览 0
提问于2010-07-31
得票数 1
回答已采纳
2
回答
多态性c++
c++
、
oop
、
polymorphism
在一些书中,声明或
继承
虚
函数
的类被称为多态类。类C有一个
虚
函数
,但没有
继承
。
浏览 0
提问于2011-07-23
得票数 7
1
回答
向派生类型添加新的静态常量整数后进行向上和向下强制转换
c++
我正在开发一个系统,该系统将获取数据流,并将其排序为各种输出流。通过系统传递的对象都是相同类型的,但是系统的最终用户有必要通过对数据对象的类进行子类化来对通过系统传递的类型进行某些更改。class Base /* provided as part of system */public: static const int OUTPUT_STREAM_TYPE_2
浏览 3
提问于2010-12-21
得票数 0
3
回答
“java中的每个类都扩展了MetaClass对象”是否意味着每个子类都会导致钻石问题
java
、
inheritance
、
fact
和“
多重
继承
在java中是不允许的”,在这里阅读更多关于钻石问题的假设ClassB扩展ClassA,然后根据fact1 ClassB扩展Object这是否意味着ClassB这是一个
多重
继承
的案例吗? 如果不是
多重
继承
,那么这两种说法怎么就不矛盾呢?
浏览 9
提问于2014-04-05
得票数 1
3
回答
在派生类中实现
虚
方法时出现问题
c++
、
inheritance
、
virtual
嘿,我正试着用MVS2010编译器来
多重
继承
一个纯
虚
函数
。这样我就可以为所有可渲染的对象进行绘制了。bool draw()=0;| | functions in here | 所以它似乎不会让我
继承
纯虚拟
函数
浏览 1
提问于2011-09-23
得票数 0
回答已采纳
点击加载更多
热门
标签
更多标签
云服务器
对象存储
ICP备案
云点播
腾讯会议
活动推荐
运营活动
广告
关闭
领券