C++温故笔记(一)
2023-09-27 14:26:37 时间
从学C++到现在也有十个年头了,一直在用,也一直在不断的研究和学习。最近时间比较宽松,就把之前的一些书籍翻了出来,把基础的东西都又略读了一遍,有了不少的收获。这可能就是所谓的理论和实践的不断循环吧。
AcWing语法基础课笔记 第三章 C++中的循环结构 第三章 C++中的循环结构 学习编程语言语法是次要的,思维是主要的。如何把头脑中的想法变成简洁的代码,至关重要。 ——闫学灿
snsn1984 多年研发和团队管理经验,熟悉LLVM、GPU等技术领域,具备公司层面技术管理能力。
从学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、析构函数与复制构造函数或者赋值操作符之间的一个重要区别是,即使我们编写了自己的析构函数,合成析构函数仍然运行。
AcWing语法基础课笔记 第三章 C++中的循环结构 第三章 C++中的循环结构 学习编程语言语法是次要的,思维是主要的。如何把头脑中的想法变成简洁的代码,至关重要。 ——闫学灿
snsn1984 多年研发和团队管理经验,熟悉LLVM、GPU等技术领域,具备公司层面技术管理能力。
相关文章
- C++深入浅出(七)—— 模板进阶
- C++中没有finally,那么应该在哪里关闭资源?
- C++-数组-vector:.data()函数
- C++-CMake:最小配置示例
- 23 DesignPatterns学习笔记:C++语言实现 --- 2.5 Factory
- 23 DesignPatterns学习笔记:C++语言实现 --- 1.5 Prototype
- [C++]Linux之虚拟文件系统[/proc]中关于CPU/内存/网络/内核等的一些概要性说明
- C++学习笔记_09 IO流 2021-04-26
- C++学习笔记_07 const、指针、引用 2021-04-19
- 传智播客 C/C++学习笔记 函数调用 模型
- 传智播客 C/C++学习笔记 二级指针作为输入 2
- 学习C++笔记134
- LLVM 3.3完全兼容C++11
- VC++/MFC学习笔记(六)
- VC++/MFC学习笔记(二)
- C++ Primer Plus第6版18个重点笔记
- 在Hadoop 2.3上运行C++程序各种疑难杂症(Hadoop Pipes选择、错误集锦、Hadoop2.3编译等)
- 《C++ Primer 第5版》-13.3交换操作-康奈尔笔记
- 《C++ Primer 第5版》-13.1拷贝、赋值与销毁-康奈尔笔记
- 《C++ Primer 第5版》-11.4无序容器-康奈尔笔记
- msgpack[C++]使用笔记 和 msgpack/cPickle性能对比
- C++ Standard Template Library STL(undone)
- 使用VS2022和WSL2开发和调试C++代码
- UE C++延迟调用实现(LatentAction方法)
- C++ 用libcurl库进行http 网络通讯编程
- 我对开源C++网络库简单应用总结
- C++windows内核编程笔记day11 win32静态库和动态库的使用