vtable 相关问题

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

如果派生类的方法的签名与基类中方法的签名完全相同,它是否会生成 vtable?

我最近观看了 YouTube 上的“Low Level Learning”视频,其中 03:38 提到“派生类中具有相同签名的函数在父类中是虚拟的”

回答 1 投票 0

避免已知类型数组中的 vtable 指针开销

这会很长,但请耐心等待。 假设我正在编写一个处理动物的程序 结构动物{ 虚拟 ~animal() { } 虚拟 std::string get_noise() const = 0; ...

回答 1 投票 0

针对同一对象重复调用同一函数的虚函数优化

假设有这样一个抽象类: 类基础{ 民众: 虚空 f() = 0; 虚拟 ~Base() = 默认值; }; 还有一些功能: void 函数 (Base& x, bool flag1, bool flag2,

回答 3 投票 0

使用 Q_OBJECT 的 Qt 库对 vtable 的未定义引用

经过一些研究,我找到了一个解决这个错误的方法,这个错误发生在一些程序员身上: #包括 A类{ MyQObject 类:公共 QtCharts::QChartVie...

回答 0 投票 0

在多重继承中拆解虚拟方法。vtable是如何工作的?

假设有以下C++源文件。#include class BaseTest { public: int a; BaseTest(): a(2){} virtual int gB() { return a; }; }; class SubTest: public BaseTest ...

回答 3 投票 6

C# 钩住一个 vmtable

作为一个学习c#本机的副项目,我想在一个虚拟方法表中钩住一个虚拟方法。我成功的可以调用该函数,但是改变指向虚拟方法表的指针...

回答 1 投票 3

如何制作qtreeview的派生类而不会出现错误:未定义对“ vTree for RoomTree的引用”

我试图避免将某些对象拖放到树中其他对象下方的情况。为此,我想更改一个功能的工作方式。因此,我尝试使用QTreeView作为基础...

回答 1 投票 0

无法理解Robert Martin的ISP文章中的“矛盾”

我在这里阅读了Robert Martin关于接口隔离原理的文章。在文章结尾,当解决ATM UI架构问题时,他说:还考虑每个...

回答 1 投票 1

生成的同名函数的vtable函数顺序反转

[如果使用Visual Studio 2019,我将使用两个具有相同名称但参数不同的虚拟方法编译此C ++代码:struct MyStruct {virtual void foo(float)= 0;虚拟void foo(...

回答 1 投票 0

是否可以在vtable中更改任何func指针?

这是一个学术问题。我做了一个宏来调用并通过vtable获得指向虚拟函数的指针。但是更改vfunc地址变量会导致内存损坏。因此,事实证明...

回答 1 投票 1

如何在子类中生成虚拟功能表

因此,我知道在c ++中,虚拟方法适用于表中存储的每个类,并且每个实例都有一个指向该表的指针。所以我的问题是子类表的外观。我将提供一个...

回答 1 投票 0

在具有虚拟功能的多继承类的两个父级之间进行铸造会导致怪异的行为

下面是代码。我不明白为什么会这样:#include using namespace std; class FooInterface {public:virtual〜FooInterface()=默认值;虚拟虚空...

回答 2 投票 0

避免重复的C ++虚拟表查找

我有C ++程序,当执行二进制文件时,该程序读取配置文件,基于该配置文件创建多个子类实例,然后定期遍历这些实例和...

回答 2 投票 6

开销执行成员函数的实现

我有一个基类和一个派生类。 Base类的唯一目标是确保Derived实现成员函数。 struct Base {virtual void f()= 0; };派生的struct:Base {...

回答 1 投票 3

尽管没有虚函数,但未定义对vtable的引用

我正在为我的一个班级使用QT进行练习,尽管没有虚函数,但我不断获得班级对vtable的未定义引用。我一直在寻找解决方案,但似乎他们都有...

回答 1 投票 -1

读取对象后的不良访问权限

我正在为一个学校项目制作密码管理器,如果在上面使用所有贴纸,都将产生巨大的保修失效。目的是能够对程序中的数据进行CRUD并将其写入...

回答 1 投票 0

Vue-bootstrap-当表更改项目时,按钮似乎没有更新

我开始使用vue-bootstrap生成包含项目的表。 “操作”列之一包含按钮,用于根据...

回答 1 投票 1

通过C ++中的udp套接字将派生类对象从一个进程发送到另一个进程

假设我们有一个类,称为Derived,从一个类继承的类称为Base。这两个类仅包含连续存储器区域中的数据。是否可以发送...

回答 1 投票 0

不要抽象类总是拥有一个虚函数表?

我有问题要理解为什么抽象类有虚函数表。我知道,这个问题已经提出了在下列帖子,我看了这么多包涵了一下:VTABLE抽象...

回答 1 投票 1

打印虚拟成员函数的地址

我正在尝试打印虚拟成员函数的地址。如果我知道哪个类实现了我可以编写的函数:print(“address:%p”,&A :: func);但是我想做这样的事情:A ......

回答 5 投票 31

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