C++精进之路(十五)友元 异常和其他

友元使得能够为类开发更灵活的接口。类可以将其他函数、其他类和其他类的成员函数作为友元。在 某些情况下,可能需要使用前向声明,需要特别注意类和方法声明的顺序,以正确地组合友元。 嵌套类是在其他类中声明的类,它有助于设计这样的助手类,即实现其他类,但不必是公有接口的组 成部分。

C++异常机制为处理拙劣的编程事件,如不适当的值、1/O失败等,提供了一种灵活的方式。引发 异常将终止当前执行的函数,将控制权传给匹配的catch 块。catch 块紧跟在try 块的后面,为捕获异 常,直接或间接导致异常的函数调用必须位于try 块中。这样程序将执行catch 块中的代码。这些代码 试图解决问题或终止程序。

类可以包含嵌套的异常类,嵌套异常类在相应的问题被发现时将被引发。 函数可以包含异常规范,指出在该函数中可能引发的异常;但C++11摒弃了这项功能。未被捕获的异 常 (没 有 匹 配 的 c a t c h 块 的 异 常 ) 在 默 认 情 况 下 将 终 止 程 序 , 意 外 异 常 (不 与 任 何 异 常 规 范 匹 配 的 异 常 )也是如此 。
RTTI (运行阶段类型信息)特性让程序能够检测对象的类型。dynamic _cast 运算符用于将派生类指针 转换为基类指针,其主要用途是确保可以安全地调用虚函数 。Typeid运算符返回一个type_info对象。可以 对两个typeid的返回值进行比较,以确定对象是否为特定的类型,而返回的type_inf o对象可用于获得关于 对象的信息。
与通用转换机制相比,dynamic_cast、stat ic_cast、const_cast和reinterpret _cast提 供了更安全、更明确的类型转换。(之后有时间在出这几种类型转换的差异)

  • 7
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值