vtable 相关问题

虚拟表或vtable是一种用于通过动态分派实现多态函数的技术

C ++ POD类型有RTTI吗?

据我所知,RTTI是如何在各种C ++编译器(如GCC)中实现的,指向type_info数据的指针存储在每个类的vtable数据中。而且如这里提到的,POD类型可能......

回答 1 投票 5

铸造Derived **→Base **错了吗?有什么选择?

上下文我的目标是有一个包含和操作几个基类对象的基本容器类,然后是一个包含和操作几个派生 类的派生容器类...

回答 5 投票 3

虚拟表和对象切片

在对象切片中,当派生类对象被复制到Base类对象时,Derived类的_vptr是否也像Base类的其他成员一样被复制到Base类的_vptr。。不是为什么? ...

回答 1 投票 0

架构x86_64 vtable的未定义符号

我正在尝试用Netbeans C ++ for mac做一个项目,当我为一个名为servicio的类做一个简单的构造函数时,编译器会向我显示以下错误:“/ Applications / Xcode.app / Constate / Developer / ...

回答 4 投票 1

什么可能导致运行时“无法在Qt中找到虚拟表的链接器符号...”错误?

这个问题以类似的方式多次提出,例如在stackoverflow或forum.qt.io或qtcentre.org。问题是这个错误信息是如此模糊,以至于一个解决方案不能......

回答 2 投票 2

GCC去简化类的虚拟化

以下代码未通过gcc进行虚拟化。我有什么想法可以说服gcc虚拟化? struct B / * final * / {virtual int foo(){return 3; }}; struct C {B&b; ...

回答 2 投票 1

如果派生类还具有基类中不存在的虚函数,则创建的vptr数

class Base {public:virtual void func1(){std :: cout <

回答 2 投票 0

无法在使用malloc / placement new创建的类上调用虚函数

我尝试为自定义分配器编写新的/删除函数,但是每当调用虚函数时,使用placement new初始化的对象都会抛出“访问冲突执行位置”。 ...

回答 1 投票 1

如何实现虚拟功能和vtable?

我们都知道C ++中的虚函数是什么,但它们是如何在深层次实现的?可以在运行时修改甚至直接访问vtable吗? vtable是否适用于所有类,...

回答 12 投票 98

g ++ -fdump-class-hierarchy输出中的第一个(int(*)(...))0 vtable条目是什么?

对于此代码:class B1 {public:virtual void f1(){}}; D级:公共B1 {public:void f1(){}}; int main(){B1 * b1 = new B1(); D * d =新D();返回0;之后......

回答 2 投票 48

字段访问 - c ++中的多态而非多态类型

当一个类中包含虚函数时,编译器会为其创建一个虚拟表。假设我们有上面的代码:class A {public:int x; }; B级:公共A {virtual void foo(){}};现在......

回答 2 投票 0

通过虚拟指针访问成员函数的指针

我遇到过文章,他们解释了vptr和vtable。我知道在存储虚函数的类的情况下,对象中的第一个指针是vptr到vtable和vtable的数组......

回答 2 投票 3

vtable的替代品

Vtables在大多数OO实现中无处不在,但他们有替代方案吗? vtables的wiki页面有一个简短的模糊,但不是真正的太多信息(和存根链接)。你知道吗......

回答 1 投票 8

Qt:信号和插槽错误:未定义引用`vtable for

以下链接示例:http://developer.kde.org/documentation/books/kde-2.0-development/ch03lev1sec3.html #include #包括 #包括 ...

回答 5 投票 19

多重继承中的c ++ vtable,指向thunk方法的指针

我读了这篇文章:https://shaharmike.com/cpp/vtable-part2/我无法理解为什么在vtable(文章末尾)我们有这个指针:0x400918 0x400820非虚拟thunk到...

回答 1 投票 1

对于从虚拟基类继承的虚函数,什么是“虚拟thunk”?

当我尝试访问从虚拟基类继承的派生类对象的内存布局时,出了点问题。编程环境:GNU / Linux 3.19.0-32-generic,x86_64编译器:...

回答 2 投票 5

© www.soinside.com 2019 - 2024. All rights reserved.