《C++Primer》3.21 用于大型程序的工具

异常处理:执行throw时,不会执行跟在throw后面的语句,而是将控制从throw转移到匹配的catch,该catch可以是同一函数中局部的catch,也可以在直接或间接调用发生异常的函数的另一个函数中。

抛出异常时如果是抛出指针,可能出现分割(解引用指向派生类对象的指针)或者更严重的问题,所以一般不采取这种方式。

栈展开:如果对抛出异常的函数的调用是在try块中,则检查与该try相关的catch子句。如果找到匹配的catch,就处理异常;如果找不到匹配的catch,调用函数也退出,并且继续在调用这个函数的函数中查找。

栈展开期间,释放局部对象所用的内存并运行类类型局部对象的析构函数。

析构函数应从不抛出异常。

terminate函数可以调用abort函数,导致程序终止。

基类的异常说明符可以用于捕获派生类型的异常对象,而且,异常说明符的静态类型决定catch子句可以执行的操作。

catch子句的次序必须反映类型层次,带有因继承而相关的类型的多个catch子句,必须从最低派生类型到最高派生类型排序。

通过定义一个类来封装资源的分配和释放,可以保证正确释放资源,这一技术成为“资源分配即初始化”,简称RAII

标准库的auto_ptr类就是“资源分配即初始化”的例子。

库倾向于定义许多全局名字——主要是模板名、类型名或函数名。在使用来自多个供应商的库编写应用程序的时候,发生的名字冲突问题称为命名空间污染

划分全局命名空间以方便使用独立开发的库。

命名空间作用域不能以分号结束

1.每个命名空间是一个作用域;

2.使用using声明可以从命名空间外部使用命名空间成员

3.命名空间可以是不连续的

4.命名空间可以是未命名的。未命名的命名空间的定义局部于特定文件,从不跨越多个文本文件。

多重继承是从多于一个直接基类派生类的能力,多重继承的派生类继承其所有父类的属性。

虚继承是一种机制,类通过虚继承指出它希望共享其虚基类的状态。在虚继承下,对给定虚基类,无论该类在派生层次中作为虚基类出现多少次,只继承一个共享的基类子对象。共享的基类子对象成为虚基类。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值