创建我们自己的RTTI-learning ros for robotics programming - second edition

18.8创建我们自己的RTTI如果编译器还不支持RT T I,可以在类库中很容易地建立自己的RT T I。这是很有意义的事情,因为在人们发现所有的类库实际上都有要用到某种形式的RT T I之后才在C + +引入RT T I。(在异常处理被加入到C + +后,人感觉“自由”一些了,因为异常处理要求有关类的准确信息)。从本质上说,RT T I只要两个函数就行了,一个用来指明类的准确类型的虚函数,一个取得基类的指针并将它向下映射成派生类,这个函数必须产生一个指向更加派生类的指针(我们可能希望也能处理引用)。有许多方法来实现我们自己的RT T I,但都要求每个类有一个唯一的标识符和一个能产生类型信息的虚函数。下例用了一个叫d y n a c a s t ( )的静态成员函数,它调用一个类型信息函数d y n a m i c _ t y p e ( ),这两个函数都必须在每个新派生类中重新定义:第18章运行时类型识别395下载
pdf 文件大小:14.32MB