来自编程语言语用学,斯科特著
对象生存期通常对应于三种主要存储分配机制之一,用于管理对象的空间:
C++静态对象中的一个类的静态数据成员和静态方法是否在PLP书中?
是在编译时还是在运行时为类的静态数据成员和静态方法分配存储?
他们被分配到哪里?
谢谢。
发布于 2017-09-16 16:54:50
C++静态对象中的一个类的静态数据成员和静态方法是否在PLP书中?
静态数据成员是的。以及函数内部的静态对象,也是。也是在文件作用域中声明的对象。
是在编译时还是在运行时为类的静态数据成员和静态方法分配存储?
如果通过分配,您就意味着内存分配,它们的内存占用在编译时被保留,而空间实际上是由链接器在链接时(或者在加载时由动态加载器)在进程空间中分配的。在这两种情况下,早在运行时间之前。
但是,在调用main()函数之前,在文件或类作用域声明的静态对象是在运行时初始化的。
函数中定义的静态对象是不同的。它们是在第一次代码流到它们上面时初始化的。
他们被分配到哪里?
链接器或装载机决定的地方。这可以通过编写自己的链接器脚本来影响(恐怕超出了这个答案的范围)。
https://stackoverflow.com/questions/46255439
复制相似问题