gpt4 book ai didi

c++ - 内存静态函数 vs 成员函数

转载 作者:太空狗 更新时间:2023-10-29 23:37:08 25 4
gpt4 key购买 nike

A 类(比方说),只有所有的静态成员函数B类(比如说)只有成员函数

如果我创建 1000 个 A 类实例。由于该类仅包含静态成员函数,因此即使有 1 个实例或 1000 个实例,内存也不会增加。

但是,对于 B 类。如果我创建 1000 个实例,内存会增加吗(即使是最轻微的,也可能是每个对象指向一组成员函数的指针)?

如果不是,那么编译器如何跟踪特定对象的成员函数信息?

最佳答案

会不会增加内存(哪怕是最轻微的,可能是每个对象指向一组成员函数的指针)?

没有。
非虚拟成员函数不会影响类对象的大小。
但是,虚拟成员函数的存在通常会增加类对象的大小。

请注意,后者纯粹是特定于实现的细节,但是由于所有已知的编译器都使用 v-tablev-ptr 实现虚拟机制,因此可以合理地假设几乎所有编译器都会显示相同的行为,即向该多态类的每个对象添加 v-ptr,从而将类对象的大小增加到与 v-ptr 相同的大小>.

关于c++ - 内存静态函数 vs 成员函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9683095/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com