7得票2回答
编译器如何知道vtable中的哪个条目对应于虚函数?

假设在父类和派生类中有多个虚函数,那么在父类和派生类的vtable中都会创建一个与这些虚函数对应的条目。 编译器如何知道vtable中的哪个条目对应哪个虚函数呢? 例如: class Animal{ public: void fakeMethod1(){} virtual void ...

62得票5回答
由于类不具有多态性,无法进行向下转型?

有没有可能继承一个类但不使用虚函数?编译器提示以下代码不是多态的。 示例:class A { public: int a; int getA(){return a;}; } class B : public A { public: int b; int ge...

42得票3回答
C++中的vtable是什么?

可能重复: 为什么需要虚函数表? C++中的vtable是什么? 据我所知,vtable是一个虚拟表,其中包含指向虚函数的指针数组。是否有一篇文章可以阅读,其中包含实际实现的示例?(任何演练都会受到赞赏。)

71得票9回答
Qt链接错误:"undefined reference to vtable"

这是我的标题:#ifndef BARELYSOCKET_H #define BARELYSOCKET_H #include <QObject> //! The First Draw of the BarelySocket! class BarelySocket: public ...

13得票2回答
运行时的Vtable修改

对于使用虚函数表(vtable)的编译器实现,是否存在虚函数表在运行时更改的情况? 或者 vtable 只在编译时填充,运行时不执行任何修改操作?

7得票4回答
C++中虚表的结构是什么?

例如,我有两个“接口”和类类型: class IPlugin { public: virtual void Load(void) = 0; virtual void Free(void) = 0; }; class IFoo { public: virtua...

28得票5回答
为什么我们需要虚拟表?

我正在寻找关于虚拟表的信息,但是没有找到容易理解的内容。 有人可以给我一些带有解释的好例子吗?

15得票3回答
接口vtable

接口(仅具有纯虚函数的多态类)是否具有虚表? 由于接口本身不实现多态函数且无法直接构造,因此链接器无需放置虚表。这样是吗?我特别关注MSVC编译器。

23得票4回答
虚表 C++

我看到很多人写道:“对于一个声明了虚函数的类,存在一个虚拟表。” 我的问题是,虚拟表只存在于声明有虚函数的类中吗?还是存在于从该类派生出来的类中? 例如:class Base{ public: virtual void print(){cout<<"Ba...

8得票6回答
继承和多态的低级细节

这个问题是我头脑中存在的一个大疑问,有时似乎很明显,有时却很难理解。所以问题是这样的: 类Base{ public: int a_number; Base(){} virtual void function1() {} virtual void fu...