- 1.1.1]--第1章导学
- [1.2.1]--计算机系统简介
- [1.3.1]--计算机语言和程序设计方法的发展
- [1.4.1]--面向对象的基本概念
- [1.5.1]--程序的开发过程
- [1.6.1]--计算机中的信息与存储单位
- [1.6.2]--计算机的数字系统
- [1.6.3]--数据的编码表示
- [1.7.1]--实验一:VS开发环境介绍
- [2.1.1]--第二章导学
- [2.2.1]--C++的特点和程序实例
- [2.2.2]--C++字符集和词法记号
- [2.3.1]--基本数据类型、常量、变量
- [2.3.2]--程序举例
- [2.4.1]--算术运算与赋值运算
- [2.4.2]--逗号运算、关系运算、逻辑运算和条件运算
- [2.4.3]--Sizeof运算、位运算
- [2.4.4]--运算优先级、类型转换
- [2.5.1]--实验二:简单程序设计(上)
- [3.1.1]--数据的输入和输出
- [3.2.1]--if语句
- [3.2.2]--switch语句
- [3.3.1]--循环结构——while语句
- [3.3.2]--do-while语句
- [3.3.3]--for语句
- [3.3.4]--嵌套的控制结构、其他控制语句
- [3.4.1]--自定义类型
- [3.5.1]--第二章小结
- [3.6.1]--实验二C++简单程序设计(下)
- [4.1.1]--导学
- [4.2.1]--函数定义
- [4.3.1]--函数调用
- [4.3.2]--例3-2
- [4.3.3]--例3-3
- [4.3.4]--例3-4
- [4.3.5]--例3-5
- [4.3.6]--例3-6
- [4.4.1]--函数的嵌套调用
- [4.4.2]--函数的递归调用
- [4.4.3]--例3-9
- [4.4.4]--例3-10
- [4.5.1]--函数的参数传递
- [4.6.1]--引用类型
- [4.7.1]--含有可变参数的函数
- [4.8.1]--内联函数
- [4.9.1]--constexpr函数
- [4.10.1]--带默认参数值的函数
- [4.10.2]--默认参数值例3-15
- [4.11.1]--函数重载
- [4.12.1]--C++系统函数
- [4.13.1]--第三章小结
- [4.14.1]--实验三(上)函数的应用
- [5.1.1]--导学
- [5.3.1]--类和对象的定义
- [5.3.2]--类和对象的程序举例
- [5.4.1]--构造函数基本概念
- [5.4.2]--构造函数例题(1)
- [5.4.3]--构造函数例题(2)
- [5.4.4]--委托构造函数
- [5.4.5]--复制构造函数
- [5.4.6]--复制构造函数调用举例
- [5.5.1]--析构函数
- [5.6.1]--类的组合
- [5.6.2]--类的组合程序举例
- [5.6.3]--前向引用声明
- [5.7.1]--UML简介
- [5.8.1]--结构体
- [5.8.2]--联合体
- [5.9.1]--枚举类
- [5.10.1]--第四章小结
- [5.11.1]--实验四(上)
- [5.12.1]--实验四(下)
- [6.1.1]--导学
- [6.2.1]--标识符的作用域与可见性
- [6.3.1]--对象的生存期
- [6.4.1]--静态数据成员
- [6.4.2]--静态函数成员
- [6.5.1]--类的友元
- [6.6.1]--共享数据的保护
- [6.7.1]--多文件结构和预编译命令
- [6.8.1]--小结
- [6.9.1]--实验五
- [7.1.1]--导学
- [7.2.1]--数组的定义与使用
- [7.2.2]--数组的储存与初始化
- [7.2.3]--一维数组应用举例
- [7.3.1]--数组作为函数参数
- [7.4.1]--对象数组
- [7.5.1]--基于范围的for循环
- [7.6.1]--指针的概念、定义和指针运算
- [7.6.2]--指针的初始化和赋值
- [7.6.3]--指针的算术运算、关系运算
- [7.7.1]--综合实例
- [7.8.1]--实验六上
- [8.1.1]--用指针访问数组元素
- [8.1.2]--指针数组
- [8.2.1]--以指针作为函数参数
- [8.2.2]--指针类型的函数
- [8.2.3]--指向函数的指针
- [8.3.1]--对象指针
- [8.4.1]--动态分配与释放内存
- [8.4.2]--申请和释放动态数组(一)
- [8.4.3]--申请和释放动态数组(二)
- [8.5.1]--智能指针
- [8.6.1]--vector对象
- [8.7.1]--深层复制与浅层复制
- [8.7.2]--移动构造
- [8.8.1]--C风格字符串
- [8.8.2]--string类
- [8.9.1]--第六章小结
- [8.10.1]--综合实例
- [8.11.1]--实验六(下)
课程简介
Linux操作系统开源的特性使得其获得越来越重要的地位,而Linux系统编程也向C++程序设计者提出了更高的要求。本课程由C/C++语言的共性与特性出发,在深入学习程序设计语言的基础上,进一步强调程序设计语言的适用性,并与Linux系统编程紧密结合,通过大力培养学习者的抽象思维能力和计算思维能力,将学习者对语言作为工具的基本认知转化为动手实践能力,完成从具象到抽象再到具象的思维能力转变。课程内容主要涵盖C++程序设计基本概念、数据组织与算法设计、程序组织、面向对象程序设计方法、泛型编程与模板库以及进程、线程、内存管理、设备驱动程序、网络等Linux系统编程核心主题。
本课程仅仅使用C++语言吗?
不。除了C++语言,本课程还使用了汉语和英语。坦率地说,我们可以在业界看到很多有关C和C++语言的争论,尤其是在系统编程领域。正像我在回答上一问题所指出的,很多Linux系统编程方面的书籍使用的是C语言。实际上,编程语言的选择压根就不是问题的重点,不管你使用的编程语言是C还是C++,计算思维能力和抽象思维能力的培养是一贯的,它们之间最大的差别仅仅在于实现的手段而已。相信我,即便仅仅使用C,你也可以构造复杂的抽象代码;而即便使用C++,如果你的思维习惯仍然停留在“见山就是山”的具象阶段,代码质量一样会惨不忍睹。我没有一点C/C++语言的基础,怎么办?
再次强调,本课程并不需要你有这方面的基础,你会在课程中学到你所需要使用到的知识。当然因为课时的原因,并不是所有C/C++知识都会在本课程上讲授,对于那些被我们省略的知识点,你可以自学,也可以假装它们压根就不存在。