课程目录


00│课前必读(2讲)

开篇词|C++这么难,为什么我们还要用C++?.pdf

课前必读|有关术语发音及环境要求.html

01|基础篇(9讲)

堆、栈、RAll: C++里该如何管理资源?.m4a

自己动手,实现C++的智能指针.html

右值和移动究竟解决了什么问题?.html

容器汇编l:比较简单的若干容器.pdf

容器汇编II:需要函数对象的容器.html

容器汇编II:需要函数对象的容器.m4a

迭代器和好用的新for循环.pdf

易用性改进l:自动类型推断和初始化.html

易用性改进ll:字面量、静态断言和成员函数说明符.html

02|提高篇(11讲)

到底应不应该返回对象? .pdf

Unicode:进入多文字支持的世界.html

编译期多态:泛型编程和模板入门.pdf

编译期能做些什么?一个完整的计算世界.pdf

SFINAE:不是错误的替换失败是怎么回事.pdf

constexpr:一个常态的世界.pdf

函数对象和lambda:进入函数式编程.html

函数式编程:—种越来越流行的编程范式.pdf

应用可变模板和tuple的编译期技巧.pdf

thread和future:领略异步中的未来.html

03│实战篇(7讲)

工具漫谈:编译、格式化、代码检查、排错各显身手.pdf

处理数据类型变化和错误: optional、variant、expected和Herbception.html

数字计算:介绍线性代数和数值计算库.html

Boost:你需要的“瑞士军刀".pdf

两个单元测试库:C++里如何进行单元测试.html

Easylogging++和spdlog:两个好用的日志库.m4a

Easylogging++和spdlog:两个好用的日志库.pdf

C++RESTSDK:使用现代C++开发网络应用.html

C++RESTSDK:使用现代C++开发网络应用.m4a

04|新年特别策划(2讲)

Concepts:如何对模板进行约束.pdf

Ranges:无迭代器的迭代和更方便的组合.pdf

Coroutines:协作式的交叉调度执行.html

05|未来篇(3讲)

Concepts:如何对模板进行约束.pdf

Ranges:无迭代器的迭代和更方便的组合.html

Coroutines:协作式的交叉调度执行.html

06加餐(1讲)

07|结束语(1讲)



课程讲义


首先是内存分配。如果new出错,按照C++的规则,一般会得到异常bad_alloc,对象的构造也就失败了。这种情况下,在catch捕捉到这个异常之前,所有的栈上对象会全部被析构,资源全部被自动清理。

如果是矩阵的长宽不合适不能做乘法呢?我们同样会得到一个异常,这样,在使用乘法的地方,对象c根本不会被构造出来。

如果在乘法函数里内存分配失败呢?一样,result对象根本没有构造出来,也就没有c对象了。还是一切正常。

如果a、b是本地变量,然后乘法失败了呢?析构函数会自动释放其空间,我们同样不会有任何资源泄漏。

总而言之,只要我们适当地组织好代码、利用好 RAll,实现矩阵的代码和使用矩阵的代码都可以更短、更清晰。我们可以统一在外层某个地方处理异常——通常会记日志、或在界面上向用户报告错误了。




课程资料部分截图


现代C++实战30讲课程资料c语言基础教学资源使用C++开发网络应用


现代C++实战30讲课程资料c语言基础教学资源使用C++开发网络应用

现代C++实战30讲课程资料c语言基础教学资源使用C++开发网络应用下载地址
现代C++实战30讲课程
阿里网盘 / 课程大小:0.00字节
提取码:**** (购买后可见)
下载
评论下
  • 顺带评个分
提交
返回顶部