站在对象模型的顶端——弹性

前言

 
传统C++对象模型提供高效的执行期支持,然而在某些领域,例如动态共享函数库、共享内存以及分布式对象方面,该对象模型仍然缺乏弹性。


动态共享函数库

 
在理想情况下,一个动态链接的shared library应该如同“突然来访”。也就是说,当应用程序下一次再执行时,会透明化地取用新的library版本,新library的出现不应该对旧的应用程序产生侵略性,应用程序不应当需要重新编译。然而,当前的C++对象模型无法做到这一点。


共享内存

 
当一个shared library被加载,它在内存中的位置由runtime linker决定,一般而言与执行中的process无关。然而,在C++对象模型中,当一个动态的shared library支持一个class object,其中含有置于shared memory中的virtual functions时,上述说法失效。