40得票5回答
打印虚拟成员函数的地址

我正在尝试打印虚拟成员函数的地址。 如果我知道哪个类实现了该函数,我可以编写: print("address: %p", &A::func); 但是我想要做类似这样的事情: A *b = new B(); printf("address: %p", &b->fu...

39得票2回答
一个班级的VTT是什么?

最近我遇到了一个对我来说是新的 C++ 链接器错误。libfoo.so: undefined reference to `VTT for Foo' libfoo.so: undefined reference to `vtable for Foo' 我意识到了错误并解决了问题,但仍有一个困扰我...

39得票6回答
vtable存储在内存的哪个位置?

vtable 存储在内存的哪个位置?

38得票8回答
对于'xxx'的虚函数表未定义引用

takeaway.o: In function `takeaway': project:145: undefined reference to `vtable for takeaway' project:145: undefined reference to `vtable for takea...

34得票3回答
C++中undefined reference to vtable和继承

文件 A.h#ifndef A_H_ #define A_H_ class A { public: virtual ~A(); virtual void doWork(); }; #endif 文件 Child.h#ifndef CHILD_H_ #define CHILD...

33得票3回答
为什么虚函数不能使用返回类型推断?

n3797 文件的 § 7.1.6.4/14 节: 使用占位类型作为返回类型声明的函数不得是虚函数 (10.3)。 因此,以下程序是非法的:struct s { virtual auto foo() { } }; 关于这个原理,我所能找到的只有来自n3638...

31得票3回答
虚方法表

在讨论密封类时,经常提到“虚函数表”这个术语。它是什么?我之前读过一个方法表(我也不记得它的目的是什么了),在这里进行谷歌/搜索会出现与C++相关的结果。 谢谢。

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

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

27得票6回答
C++中什么时候会创建虚函数表(vtable)?

编译器什么时候会创建虚函数表? 1) 当类至少包含一个虚函数。 或者 2) 当直接基类至少包含一个虚函数。 或者 3) 当任何级别的父类都至少包含一个虚函数。 与此相关的问题是:在C++继承体系中是否可能放弃动态分派? 例如,请考虑以下示例。#include <iostre...

26得票4回答
在C语言中的动态方法调用

我知道这听起来很傻,也知道C语言不是面向对象的语言。 但是有没有办法在C语言中实现动态方法调度? 我考虑过使用函数指针,但不能完全理解这个想法。 我应该如何实现呢?