cpp类是否动态加载?

时间:2016-01-26 05:28:41

标签: c++ classloader

我知道JVM有一个单独的类加载器,它是加载类并执行它们的默认运行时方法。我只是想知道类加载如何适用于cpp。并且cpp中的类加载与操作系统中的动态加载有些相关。如果类没有动态加载,我想没有真正需要堆分配。但是cpp显然有free()内存选项。我有点困惑。它是如何工作的?

编辑:我理解为什么堆是对象初始化所必需的。但是我自己并不清楚静态或动态加载类本身的原因,特别是cpp的做法。

1 个答案:

答案 0 :(得分:6)

没有。
一旦代码被编译成可执行文件,就没有类,对象,方法等:只有字节和机器指令。

动态内存与动态类加载无关。 "动态"内存意味着内存的大小不一定在编译时是已知的,并且可能只在运行时知道,具有更改和调整大小的能力,因此" dynamic"。同样,这是使用不了解类的机器指令实现的。

唯一远程类似于"类加载"是DLL加载。 DLL是编译代码,用于导出其他程序使用的函数 可以在运行时加载和卸载DLL。而且,这些导出的功能已经是机器指令。