资源详情
课程简介: 为什么要学这门课程? 学C语言后想进阶学C++; 学Ja .vA后想了解C++这个同门大佬; 听说C++ 11/14/17/20被称为“Modern C++”,想看看它和“Classic C++”有啥不同; 想学习编码规范以写出【好看】的代码。 这门课程要求: 你已有编程基础,知道数据类型、分支循环、数组等语言要素; 你已经写过代码,想看看C++能否多快好省地编程序。 这门课程不适合: 从未接触过编程(可以先学C语言入门); 希望用三行代码改变世界(建议去学Python); 认为JA危a能搞定一切(奇迹和灾难都在JVM中); 非IT专业但听说编程是职场必备能力(可以先学解释型语言,更易入门)。 必须要学C++的理由: 做人工智能研究,想要深入底层;比如TensorFlow的核心是用C++写的; 做游戏开发,包括端游和网游后台,以发挥计算机的全部忄生能,需要C++; 做智能硬件、嵌入式或硬件驱动开发;C++会提供更多工具,生产效率更高; 你喜欢。 必须要学本课程的理由: 学了C++,但是希望学习C++11~C++20等新标准的特忄生及编程范式; 学了C++,但是还在用typedef,或者认为 for(auto i : array)是写错了; 定义变量时轮流使用26个英文字母,不够的话再加上下划线 (⊙_⊙)? 课程内容更新安排: 第一期课程主要介绍C++基础及C++11~17的功能忄生增强; 第二期课程补充一些C++17的基础特忄生 第三期课程继续补充C++11~17中一些较难理解的特忄生,并选择少量C++20的新增特忄生 授课目标 通过这门课程,希望能够让你: 初步掌握C++的面向对象编程方法; 能初步使用 C++11/14/17 标准中 “Modern C++” 的思想写代码 了解并应用编码规范 授课老师: 崔毅东副教授、杨谈副教授 课程目录: C++概览 了解编程范式和C++的标准演化;学习使用一种最新的编程工具。 课时 第01节:C++编程范式与C++11~17标准 第02节:学习C++:参考书和编程环境 第03节:Visual Studio集成开发环境 第04节:Eclipse CDT集成开发环境 第05节:如何快速学习本课程? 第06节:常见问题解答 C++程序基础 了解C++编码规范的作用;理解名字空间并会使用名字空间;掌握输入输出的基本方法 课时 第01节:C++源代码和编码规范 第02节:Aloha World代码示例 第03节:名字空间 第04节:编译C++程序 第05节:处理错误 第06节:输入和输出 C语法的增强及对应的C++11特忄生 掌握C++对C语言语法的增强,比如引用类型、new/delete等;掌握C++11的基础特忄生 课时 第01节:引用、[C++11]空指针与动态内存分配 第02节:数据类型与转换、[C++11]列表初始化 第03节:[C++11]的自动类型推导:类型系统、auto与decltype 第04节:简化的C++内存模型 第05节:常量与指针 第06节:特殊函数:重载、默认参数值与内联 第07节:[C++11]基于范围的for循环 第08节:[C++17]带有初始化器的if和switch语句 对象和类(基础) 掌握创建类和对象的方法;学会使用string类和array类 课时 第01节:用类创建对象 第02节:对象拷贝以及分离声明与实现 第03节:对象指针、对象数组以及函数参数 第04节:抽象、封装与this指针 第05节:[C++11]类数据成员的就地初始化 第06节:string类以及[C++11]std::array类 对象和类(高级) 掌握代理构造、静态成员、析构函数的使用;学会使用vector类 课时 第01节:[C++11]断言与常量表达式 第02节:代理构造、不可变对象与静态成员 第03节:析构、友元与深浅拷贝 第04节:vector类和[C++14]字符串字面量 第05节:例子 第06节:[C++17]的结构化绑定 继承和多态 掌握继承的方法;掌握实现运行时多态的方法。 课时 第01节:继承与构造 第02节:名字隐藏与重定义 第03节:覆写与运行时多态 第04节:抽象类与动态类型转换 文件输入输出流 掌握读写文本文件和二进制文件的方法 课时 第01节:[C++17]文件系统(filesystem) 第02节:文件I/O流的基本用法 第03节:格式化输出与I/O流函数 第04节:二进制输入输出 第05节:随机访问文件 运算符重载 掌握重载一般运算符的方法;理解流操作运算符必须重载为友元函数的原因;理解以引用作为重载运算符函数的参数和返回值的原因 课时 第01节:运算符重载与平面向量类 第02节:重载二元运算符和数组下标运算符 第03节:重载一元运算符 第04节:重载流操作运算符与类型转换运算符 第05节:重载赋值运算符及其它总结 异常处理 掌握异常处理的方法,能够创建自定义的异常类解决问题;理解异常传播的机制 课时 第01节:异常处理概览 第02节:异常匹配与内建异常类 第03节:自定义异常类与多重捕获 第04节:[C++11]noexcept与异常传播 第05节:重抛异常与异常的使用场景 模板初步 了解元编程和泛型编程的含义;学会使用函数模板和类模板处理多种数据类型的方法;理解模板实例化的意义 课时 第01节:模板与泛型编程 第02节:函数模板 第03节:排序示例与泛型化 第04节:类模板 第05节:模板参数与模板继承 标准模板库(STL)基础 了解标准模板库的组成;掌握顺序容器的使用方法,掌握利用迭代器遍历容器的方法;了解容器的逻辑结构 课时 第01节:标准模板库基础 第02节:STL容器 第03节:STL迭代器 第04节:容器的更多用法 教材: 主要参考资料: 《C++程序设计》(中文版·第3版),[美]梁勇, 机械工业出版社, 2015年1月1日出版,ISBN:9787111485148 【http://book.douban.com/subject/3171363/】 或者 《C++程序设计》(英文版·第3版) [Introduction to Programming with C++,Third Edition],Y. Daniel Liang,机械工业出版社,2013年6月1日出版, ISBN:9787111425052 【http://book.douban.com/subject/24736736/】 【注】本课程的绝大部分C++11~C++17的新特忄生教学内容均由课程团队自行编写。上述参考资料中无法找到对应的内容 附加资料: 《深入理解C++11:C++11新特忄生解析与应用》,Michael Wong, IBM XL编译器中国开发团队,机械工业出版社,2013年 《C++程序设计语言(第1-3部分)》第四版,[美] 本贾尼·斯特劳斯特鲁普,机械工业出版社,2016年; 【726页。这本是C++他爹写的,当字典用。第4部分单独成书,352页】 《C++ Primer》第5版 中文版,[美]Stanley B. Lippman & Barbara E. Moo, 电子工业出版社,2013年 【848页。这本是大全,是“C++从入门到JA危a”的表率】 《C Primer Plus》第6版 中文版,[美]Stephen Prata,人民邮电出版社,2012年 【936页。这本易与上面那本混淆。但是它是讲C语言的,比上面那本易读,所以多了88页】
下载地址
链接:https://pan.baidu.com/share/init?surl=GyS3wnimzT5Y7MP3MMWS6g 密码:n7fr 解压密码:未加密,无解压密码