问题标签 [virtual-table]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
482 浏览

mysql - 虚拟表编辑特定行而不在Delphi中移动光标

我在 Delphi 中有一个虚拟表数据集,可以处理数千行。每次更改数据库后,我使用线程从数据库中获取更改,然后刷新数据集。但这会导致在定位到当前行操作之后移动屏幕(因为我在线程结束后完全更新了虚拟表)。这对眼睛很不方便,有时用户可能会点击错误的行。

所以我决定直接编辑更改的行而不是定位(DataSet.Edit 和 DataSet.Post)。但只有当光标位于特定行上时,我才能做到这一点。如果用户在不同的行上,此方法没有任何意义,因为我必须将光标移动到所需的行,进行更改,然后定位回用户所在的行。这当然会移动屏幕!

你明白我的意思。是否有任何解决方案可以“静默”地编辑 DataSet,这样用户就不会感觉到?谢谢。

0 投票
2 回答
72 浏览

c++ - 带有虚拟指针和继承的 cpp 类大小

在 32 位系统 linux 中

为什么 sizeof(B) 和 sizeof(C) 都是 4

对于C类,它有一个虚函数,所以在C类中隐藏了一个虚拟指针,它是4字节

但是为什么B类的大小也是4。我认为它在B类中存在两个指针,一个是针对B本身的,因为B类有一个虚函数,一个是针对A的。

那么E的同样问题?

任何帮助表示赞赏

0 投票
2 回答
694 浏览

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

我有一个 C++ 程序,它在执行二进制文件时读取配置文件,根据配置文件创建许多子类实例,然后定期迭代这些实例并调用它们各自的虚函数。

Gprof 告诉我这些函数调用占用了很多时间(前面提到的迭代非常频繁),所以我想尽量避免重复的虚函数调用。

代码类似于以下内容。一旦程序在程序开始时填充了向量 v,这个向量对于程序的其余部分将不再改变,所以每次我想调用 f() 时重复地进行虚拟表查找似乎效率低下。我认为必须有一种方法可以以某种方式缓存或保存函数指针,但我不确定如何。

希望您对加快速度有任何建议。谢谢!

编辑:对不起,我忘了提到子实例向量的函数调用 f() 必须按从 0 到 v.size() - 1 的顺序,所以我不能将 v 的元素组合在一起相同的派生类型。

此外,这是使用 -O3 -std=c++14 构建的

0 投票
2 回答
117 浏览

c++ - 在 C++ 中通过虚拟表访问函数

我有两个班B和D

我的任务是创建一个函数,该函数采用指向对象 B 的指针并打印返回方法 'prva' 和 'druga' 的值而不使用它们的名称(通过虚拟表访问)

我编写了以下代码,成功打印了方法 'prva' 的返回值,但未能对第二种方法 'druga' 执行相同的操作

此代码执行打印:“Prva:42”

它无法prva()在“druga”内部调用,我不知道为什么。

此外,如果我只是删除 call ofprva()并让 body just be return x,则无论我尝试通过什么参数发送,方法 'druga' 将始终返回“42”或我让 'prva' 返回的任何数字fun2()

任何想法我在这里做错了什么,我应该如何访问方法?

0 投票
2 回答
55 浏览

apache-spark - 如何使用 HANA SDA 虚拟表访问 HIVE ACID 表?

我们目前正在使用HANA 1 sps 12SPARK 控制器来创建虚拟表并访问 HANA 中的 HIVE 数据。问题是我们有一些 SC2 表要归档在 HANA 中,我们需要完整的 CRUD 操作。我们已将一些 Hive 表转换为ACID (transactional = true)。现在我们无法获取记录,它返回 0 条记录。

我们尝试使用具有对 Hive 酸表的本机支持的 ​​Drill,但是当我们使用 Drill ODBC 驱动程序和 DSN 查询 Hive 表时,它失败了。在检查了击中 Drill 的查询后,我们发现 HANA 将模式名称用双引号括起来。例如。Select * from "hive.schemaname".tablename.

我们尝试将默认引号从默认反引号更改为 ",但最终丢失了远程架构刷新,因为该查询发送了使用反引号 ` 包装架构名称。

0 投票
1 回答
233 浏览

c++ - 指向由派生类初始化的基类的指针如何使 *__vptr 称为正确的虚函数?

有人可以向我解释一下粗体部分吗?

我不明白为什么 *__vptr 它位于类的 Base 部分,并且 dPtr 可以访问该指针,可以突然指向 D1 虚拟表而不是 Base 虚拟表!我读过一些文章,看了一些资料,但仍然感到困惑。

请注意,因为 dPtr 是一个基指针,它只指向 d1 的基部分。但是,还要注意 *__vptr 位于类的 Base 部分,因此 dPtr 可以访问该指针。最后,注意 dPtr->__vptr 指向 D1 虚拟表!因此,即使 dPtr 是 Base 类型,它仍然可以访问 D1 的虚拟表(通过 __vptr)。

来源:https ://www.learncpp.com/cpp-tutorial/125-the-virtual-table/comment-page-6/#comment-484189

0 投票
0 回答
57 浏览

odata - 具有 OnPremise 数据网关的 Dataverse 虚拟表

我有使用 onPremise 数据网关通过 Dataverse 访问 onPremise 数据的经验。目前我正在尝试将“虚拟表”集成到我的技能组合中。

我有以下架构。

  • OnPremise OdataV4 WebApi(用于简单产品数据的 odata api)
  • Dataverse 中用于产品数据的模型驱动应用程序
  • 虚拟表“产品”

是否可以为虚拟表配置 dataProvider 以使用我的 OnPremise OdataV WebApi?

0 投票
0 回答
163 浏览

drag-and-drop - 是否有任何示例可以使用 React-beautiful-dnd lib 使 React-virtualized Table(not list) 中的行可拖放?

尝试了 React-beautiful-dnd lib 中提到的所有方法来使用虚拟列表,但不能使其与 React-virtualized-table 一起使用。

0 投票
0 回答
42 浏览

sqlite - SQLite 虚拟表创建格式错误的数据库

我创建了一个 SQLite 数据库。它在没有虚拟表的情况下运行良好,但是当我在代码中添加虚拟表时,它会发送以下错误。

我创建了一个数据库:

然后我运行代码:

这给出了错误:

r

0 投票
1 回答
56 浏览

c++ - 如何在不创建实例的情况下获取继承结构的基类偏移量

考虑这段代码:

我有兴趣找到 in 的偏移BC。以前使用其他没有虚拟继承的结构,并且offsetof第一个成员只有一个基类似乎可以工作。我已经反编译了一些代码(在 IDA 中),基类在这里很好地突出显示(十六进制):

截屏

在函数中,这些确切的基类偏移量用于通过将偏移量添加到(通过转换为 a )将void*'s 转换为派生类。结构体,和类似于编译代码中的结构体,包括具有虚函数的类和多个基类。void*char*ABC

我的问题是他们是怎么做到的,我该怎么做?我尝试过类似i32 offset = (i64)((B*)((C*)NULL));但没有运气的东西。