gpt4 book ai didi

c++ - 类字段的内存

转载 作者:太空宇宙 更新时间:2023-11-04 15:01:17 25 4
gpt4 key购买 nike

我有这样的类(class):

class Job{
public:
string name;
double age;

Job(string name, double age){
this->age = age;
this->name = name;
}
};

如果我用这种方式创建这个类的对象:

Job* job = new Job("worker", 45.36);

new Job(..) 对象将存储在堆中,但是string namedouble age 的内存分配在哪里?在堆栈上还是在堆上?

最佳答案

严格来说,C++ 语言标准没有规定任何这些。

事实上,它甚至没有定义这些术语中的任何一个(堆栈)。

分配对象的内存部分完全取决于编译器实现。

也就是说,在实践中,任何“体面的”编译器都会创建一个目标代码,使得两个字段都位于相对于包含对象的基地址的偏移量处(因此在您的示例中,它们将被放置在堆)。

关于c++ - 类字段的内存,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39899520/

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