gpt4 book ai didi

C++类和对象——内存

转载 作者:行者123 更新时间:2023-11-27 23:31:44 25 4
gpt4 key购买 nike

class or object 哪个占用内存?而且,是在编译还是执行时?

谢谢。

最佳答案

在编译期间,内存布局是一个实现细节——您无需了解或关心。

然而,在运行时......在 C++ 中,类定义类型,但(除非你激活 RTTI 允许对类进行有限的内省(introspection))它们本身通常不占用任何内存1——它们是只是构建和销毁对象的框架。然而,它们的方法——构造函数、析构函数、实例方法和类方法占据了可执行内存的一部分,但编译器可以并且确实优化掉了程序中未使用的任何此类方法。

类型的实例(即对象以及像 int 变量这样的原语)在 C++ 中占据了大部分内存,但对于它们的成员函数,它们会返回到它们的类中。特定类的实例使用多少内存完全是一个实现细节,您通常不需要关心它。


1 即使这样,类本身也不使用内存,但它们关联的 std::typeinfo 实例使用。但同样,这通常是实现方面的东西,而不是那种即使是干瘪的程序员也会非常关注的东西。

关于C++类和对象——内存,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4838911/

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