接前一篇文章:QEMU源码全解析15 —— QOM介绍(4)
本文内容参考:
《趣谈Linux操作系统》 —— 刘超,极客时间
《QEMU/KVM》源码解析与应用 —— 李强,机械工业出版社
特此致谢!
上一回讲完了QOM第一部分 —— 类型的注册。本回开始讲解第二部分 —— 类型的初始化。
2. 类型的初始化
在C++、Java等面向对象编程语言中,当程序中声明一个类型的时候,就已经知道了其类型的信息,如它的对象的大小。但是如果使用C语言来实现面向对象的这些特性,就需要特殊的处理了,要对类进行单独的初始化。在前文中,所有的类型信息TypeImpl已经保存在了一个哈希链表中,接下来,就需要对类进行初始化了。
类的初始化是通过type_initialize函数完成的,其在qom/object.c中,代码如下: