RTTI
C++中的RTTI通过两个操作符typeid和dynamic_cast实现
这两个操作符的使用只有在包含虚函数的时候才有效。
这两个操符的实现都需要用到type_info对象,这个对象保存了类型的信息。
当对象包含虚函数的时候会有一个虚函数表,而对象的最前面有一个指针指向了这个虚函数表,同时在虚函数表的前一个地址存了了type_info对象的指针。
C++中的RTTI通过两个操作符typeid和dynamic_cast实现
这两个操作符的使用只有在包含虚函数的时候才有效。
这两个操符的实现都需要用到type_info对象,这个对象保存了类型的信息。
当对象包含虚函数的时候会有一个虚函数表,而对象的最前面有一个指针指向了这个虚函数表,同时在虚函数表的前一个地址存了了type_info对象的指针。