C++温故笔记(一)-阿里云开发者社区

开发者社区> 开发与运维> 正文
登录阅读全文

C++温故笔记(一)

简介: 从学C++到现在也有十个年头了,一直在用,也一直在不断的研究和学习。最近时间比较宽松,就把之前的一些书籍翻了出来,把基础的东西都又略读了一遍,有了不少的收获。这可能就是所谓的理论和实践的不断循环吧。

从学C++到现在也有十个年头了,一直在用,也一直在不断的研究和学习。最近时间比较宽松,就把之前的一些书籍翻了出来,把基础的东西都又略读了一遍,有了不少的收获。这可能就是所谓的理论和实践的不断循环吧。将略读过程中所做的笔记整理出来,主要是总结和备忘,如果能对他人有所帮助,那就善莫大焉了。注:都是一些基础的东西,没有什么高深的,大牛可以跳过。

一、模板和泛型

1、模板是C++语言与众不同的特性,是标准库的基础。

2、函数模板是建立算法库的基础,类模板是建立标准库容器和迭代器类型的基础。

3、模板是泛型编程的基础。


二、异常处理

1、C++的异常处理中,需要由问题检测部分抛出一个对象给处理代码,通过这个对象的类型和内容,两个部分能够就出现了什么错误进行通信。

2、异常对象由编译器管理,而且保证驻留在可能被激活的任意catch都可以访问的空间。

3、当抛出一个表达式的时候,被抛出对象的静态编译时类型将决定异常对象的类型。

4、栈展开(stack unwinding),沿嵌套函数调用链继续向上,直至为异常找到一个catch子句,就进入该catch子句,并在该处理代码中继续执行。当catch结束的时候,在紧接与该try块相关的最后一个catch子句之后的点继续执行。

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


三、RAZZ

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

2、autoptr类是RAII的实例。


四、析构函数

1、合成析构函数按对象创建时的逆序撤销每个非static成员,因此,它按成员在类中声明次序的逆序撤销成员。

2、析构函数与复制构造函数或者赋值操作符之间的一个重要区别是,即使我们编写了自己的析构函数,合成析构函数仍然运行。

版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

分享:
开发与运维
使用钉钉扫一扫加入圈子
+ 订阅

集结各类场景实战经验,助你开发运维畅行无忧

其他文章
最新文章
相关文章