c++ - 类成员函数号的作用

标签 c++

我的问题与 C++ 类定义有关。我理解如果类中存在很多成员变量。类(class)人数会增加。但是,增加类成员函数的数量不会影响其大小。但是,我想知 Prop 有更多成员函数的类和具有更少成员函数的类之间的主要区别是什么。调用具有较少成员函数的类是否可能更快?

最佳答案

您需要每个实例的空间来存储成员变量,但成员函数不是实例的一部分,至少不是直接的。每个额外的虚拟成员函数通常需要一个额外的指针,但该指针指向 vtable。它在一个类的所有实例之间共享,因此不会增加每个成员的大小。

非虚拟成员函数仅在代码内存中占用空间:它们的空间要求与独立函数没有区别,唯一的区别是用于将指针传递给 this 的隐藏参数。

添加到类中的第一个虚函数添加了一个额外的指针,指向存储实例所需的空间;额外的非虚拟成员函数根本不符合空间要求。

关于c++ - 类成员函数号的作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11798494/

相关文章:

c++ - 如何正确注册?

c++ - 编译 Boost 链接库 (Ubuntu)

c++ - 如果验证容器的大小并在相同的条件语句下访问元素,这是好的做法吗?

c++ - 奇怪的 c++ 运算符(运算符 unsigned short())

c++ - 使用 GCC 编译 C++ 程序

c++ - 多重继承需要访问私有(private)变量

c++ - Visual Studio 代码调试 : source and then launch on same shell

c++ - 如何获取 Boost Graph Library 中属性的类型

c++ - 为什么在这种情况下 boost 不创建线程 (C2248) 以及如何创建它?

c++ - 如何在线程创建和退出时调用函数?