cpp类是否动态加载?

use*_*550 0 c++ classloader

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

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

Dav*_*aim 6


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

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

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

  • C++不是Java.在运行时,只有机器指令 (2认同)