35. 当有未被捕获的的异常时,系统缺省调用terminate(),他调用abort()函数直接从进程中退出,此时静态全局变量的析构函数未被调用。能够使用set_terminate来安装自己的terminate函数,用法和上面的几个安装起相同。他返回的typedef void (*terminate_handler)();为老的处理器指针。
当一个构造函数在分配资源时,假如这时有unexpect异常到达,系统会结束而不会调用析构函数来释放已 分配的堆内存。
36. 运行期间的类型判定(run-time type identification, RTTI)
a.) 编译器实现。
使用函数typeid(objname).name()就可得到函数的名字。实际上typeid()返回全局typeinfo类的常量对象的一个引用。使用before来判断一个对象是否在另一个对象前定义。
fit ft;
up u;
if(typeid(ft).before(typeid(u))) printf("lzh\n"); //is true
b). 安全方法向下映射法
C* pc = dynamic_cast<C*>(pd); // ok: C is a direct base class
// pc points to C subobject of pd
文章整理:西部数码--专业提供域名注册、虚拟主机服务
http://www.west263.com
以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!



