c++11 非常全的文档 pdf

所需积分/C币:24 2018-10-11 17:12:46 1.59MB PDF
收藏 收藏 4
举报

c++11,17新增功能文档。
高速上手C++11/14 C++算是一个用户群体比较大的语言了,从C++98到C++11经历了长达十年多之 久的积累,C+14则是作为对C++11的重要补充和优化,所有这些新标准中扩充 的特性,给C++这门语言注入了新的活力 那些还在坚持使用传统C艹(本教程把C++98及其之前的C++特性均称之为传 统C++)而未接触过C++11/14的C++程序员在见到诸如 Lambda表达式这类全 新特性时’甚至会流露出『学的不是同一门语言』的惊叹之情。 C艹+1x(本教程中指C++11,甚至C十17)为传统C十注入的大量特性使得整个 C+变得更加像一门现代化的语言。C++1X不仅仅増强了C++语言自身的可用 性,auto关键字语义的修改使得我们更加有信心来操控极度复杂的模板类型。 同时还对语言运行期进行了大量的强化, Lambda表达式的出现让C++具有了『匿 名函数』的『闭包』特性’而这一特性几乎在现代的编程语言(诸如 β thon/Swi仳t!)中已经司空见惯’右值引用的出现解决了C++长期以来被人诟病 的临时对象效率问题等等。 C++1x为自身的标准库增加了非常多的工具和方法,诸如在语言层面上提供了 std:: thread支持了并发编程’在不同平台上不再依赖于系统底层的A門丨·实现 了语言层面的跨平台支持;std: regex提供了完整的正则表达式攴持等等。 C+98已经被实践证明了是一种非常成功的『范型』’而C++1X的出现’则进 步推动这种范型,让C++成为系统程序设计和库开发更好的语言 目标读者 本教程假定读者已经熟悉了传统C十十,至少在阅读传统C++代码上不具备任 何因难。換句话说·那些长期使用传统C++进行编码的人丶渴望在短时间内迅 速了解 Modern c++特性的人非常适合阅读本书; 2.本教程一定程度上介绍了一些C++1X的黑魔法,但这些魔法毕竟有限,不适 合希瑝进阶学习C++1x的读者本教程的定位系C++1x的快速上手。当然 希鲨进阶学习的读者可以使用本书来回顾并检验自己对 Modern c+←的熟悉 度 本书目的 本教程虽号称高速上手教程,但实际上对C++11/14的相关特性做了一个较为全面 的介绍,读者可以自行根据下面的目录选取感兴趣的内容进行学习,快速熟悉需要 了解的内容,这从某种意义上来说,也算是高速上手了。 这些特性并不需要全部掌握,只需针对特定的应用场景,学习、查闶最逅合自已的 新特性即可。 值得一提的是’本教程在介绍这些特性的过程中,尽可能筒单明了的介绍了这些特 性产生的历史背景和技术需求’这为理解这些特性丶运用这些特性提供了很大的帮 助 内容一览 第一章C++11/14简介 o概述 o被弃用的特性 o与C的兼容性 ●第二章语言可用性的强化 nullptr与 constexpr o类型推导 auto decltype 尾返回类型、auto与 decltype配合 o区问迭代 基于范围的for循环 o初始化列表 std:initializer list 统一初始化语法 板增强 外部模板 尖括号 类型别名模板 引 变长参数模板 面向对象增强 ■委托构造 ■继承构造 显式虚函数重载 ■ verride final 显式禁用默认函数 o强类型枚举 第三章语言运行期的强化 o| ambda表达式 ambda表达式基础 值捕获 引用捕获 隐式捕获 ■表达式捕获 泛型| ambda o函数对象包装器 std: function std: bind/std: placeholder o右值引用 ■左值丶右值的纯右值丶将亡值、右值 ■右值引用和左值引用 移动语义 完美转发 第四章对标准库的扩充:新増容器 std: : array o std:: forward list o std: unordered set o std: unordered_ map o std:: tuple 基本操作 ■运行期索引 合并与迭代 第五章对标准库的扩充:智能指针和引用计数 oRAl与引用计数 引 o std: shared_ptr std: unique_ptr o std: weak ptr ●第六章对标准库的扩充:正则表达式库 o正则表达式简介 ■普通字符 特殊字符 ■限定符 ostd: regex及其相关 ■std::regeⅩ std:: regex match std:: match results ●第七章对标准库的扩充:语言级线程支持 o std: thread std: mutex std: unique lock o std: future o std: packaged task o std:: condition variable 第八章其他杂项 o新类型 longlong in o except的修饰和操作 o字面量 原始字符串字面量 自定义字面量 第九章扩展主题:C++17筒介 o主要入选特性 非类型模板参数的auto std: variant<> ■结构化绑定( Structured bindings) 变量声明的强化 o未入选特性 Concepts 引 交流 本教程在每节的最下方提供了评论’如釆读者发现教程中内容的锘误,可以使 用评论或者通过发 Issue来指出; 2.本书依然有很多特性没有参与介绍,例如a1 ignas内存对齐、无限制联合 等,主要是考虑到这些特性的使用频次实在是太低,故没有多做介绍,若对未 提及的特性有需求,笔者可以考虑将其加入第八章; 3.笔者是一枚C++新手,所以水平有限,若有任何错误,欢迎指出,让我把这 个教程做得更好 4.本教程有以下交流群·有兴趣的读者可以加入’加群请注明 giftbook 口 群名称: Modern c++交流群 群号:306196433 GitHub 木书中涉及的相关代码可以在GⅰtHub上查看: https:/github.com/changkun/cpp1x-tutorial 版权声明 本教程系欧长坤(欧龙崎)为实验楼编写的基础课教程·采用知识共享署名-非商业 性使用-禁止演绎4.0国际许可协议进行许可。 教程地址:https://www.shiyanlou.com/courses/605 Copyright o 20 16 Changkun Ou at shiyanlou com all right reserved powered by Gitbook该文件修改时间:2016-09-2001:17:30 第一章C++11/14简介 第一章C++114简介 被弃用的特性 在学习C+1X之前’我们先了解一下从C+11开始,被弃用的主要特性 注意:弃用不等于废弃,只是用于暗示程序员这些特性将从未来的标准中消 失应该尽量避免使用。但是,已弃用的特性依然是标准库的一部分’并且出 于兼容性的考虑’这些特性其实会『永久』保留。 如果一个类有析枃函数为其生成拷贝构造函数和拷贝赋值运算符的特性被弃 用了c 不再允许字符串字面值常量赋值给一个char*。如果需要用字符串字面值 常量赋值和初始化一个char*,应该使用 const char*或者 auto char*str="he1 Lo world!";//将出现弃用警告 C++98异常说明、 unexcepted_ handler、 set_ unexpected()等相关特 性破弃用’应该使用 except auto_ptr被弃用,应使用 unique _ptr · register关键字被弃用。 ●bool类型的十+操作被弃用。 ●C语言风格的类型转换被弃用·应该使用 static cast、 reinterpret cast、 const cast来进行类型转换。 还有一些其他诸如参数绑定(C++11提供了std:bind和 std: function)、 export等特性也均被弃用前面提到的这些特性如果你 从未使用或者听说过’也请不要尝试去了解他们’应该向新标准靠拢’直接学习新 特性。毕竞,技术是向前发展的。 二丶与C的兼容性 第一章C++11/14简介 出于一些不可抗力丶历史原因’我们不得不在C+中使用一些C语言代码(甚至 古老的C语言代码)’例如Linuⅹ系统调用。在C++11出现之前,大部分人当谈 及『C与C++的区别是什么』时’普遍除了回答面向对象的类特性丶泛型编程的 模板特性外’就没有其他的看法了’甚至直接回答『差不多』’也是大有人在。下 面的韦恩图大致上回答了C和C++相关的兼容情况 C89 C++98 C99 C++1x C11 从现在开始’你的脑子里应该树立『C++不是C的一个超集』这个观念(而且从 开始就不是’后面的进一步读的参考文献中给出了C++98和C99之间的区 别)。在编写C++时,乜应该尽可能的避免使用诸如ⅴoid*之类的程序风格。 而在不得不使用C时’应该注意使用 extern"C"这种特性,将C语言的代码 与C艹+代码进行分离编译’再统一链接这种做法’例如

...展开详情
试读 89P c++11  非常全的文档 pdf
立即下载 低至0.43元/次 身份认证VIP会员低至7折
    一个资源只可评论一次,评论内容不能少于5个字
    满衣兄 这个就是《现代 C 教程:高速上手 C 11_14_17_20》
    2020-07-10
    回复
    关注 私信 TA的资源
    上传资源赚积分,得勋章
    最新推荐
    c++11 非常全的文档 pdf 24积分/C币 立即下载
    1/89
    c++11  非常全的文档 pdf第1页
    c++11  非常全的文档 pdf第2页
    c++11  非常全的文档 pdf第3页
    c++11  非常全的文档 pdf第4页
    c++11  非常全的文档 pdf第5页
    c++11  非常全的文档 pdf第6页
    c++11  非常全的文档 pdf第7页
    c++11  非常全的文档 pdf第8页
    c++11  非常全的文档 pdf第9页
    c++11  非常全的文档 pdf第10页
    c++11  非常全的文档 pdf第11页
    c++11  非常全的文档 pdf第12页
    c++11  非常全的文档 pdf第13页
    c++11  非常全的文档 pdf第14页
    c++11  非常全的文档 pdf第15页
    c++11  非常全的文档 pdf第16页
    c++11  非常全的文档 pdf第17页
    c++11  非常全的文档 pdf第18页
    c++11  非常全的文档 pdf第19页
    c++11  非常全的文档 pdf第20页

    试读已结束,剩余69页未读...

    24积分/C币 立即下载 >