一、C++面向对象程序设计
00:10
1. 应具备的基础
00:32
语言基础: 需要学过某种过程式语言(procedural language),特别是C语言最佳,但其他语言也可以
核心概念:
变量(variables)和类型(types): 包括
intintint
,
floatfloatfloat
,
charcharchar
,
structstructstruct
等
作用域(scope): 理解变量在大括号内的生命周期
循环结构: 熟练掌握
whilewhilewhile
,
forforfor
循环
流程控制: 掌握
if−elseif-elseif−else
,
switch−caseswitch-caseswitch−case
等控制结构
开发经验:
了解程序需要编译、链接才能执行的基本原理
具备实际编译和链接程序的经验(无论是命令行还是集成开发环境)
有实际编写程序的经验
2. 目标
03:12
编程风格:
培养正规、大气的编程习惯
即使是小程序也要体现专业风范
class设计:
掌握良好的C++ class编写方式
学习两种经典class类型:
不带指针成员的class(以Complex为例)
带指针成员的class(以String为例)
面向对象:
学习class之间的关系(Object Oriented)
掌握继承(inheritance)、复合(composition)、委托(delegation)等概念
课程结构:
分为基于对象(Object Based)和面向对象(Object Oriented)两大部分
3. 将获得的代码
05:13
示例项目:
Complex类: 实现数学中的复数功能
包含complex.h头文件和complex-test.cpp测试文件
String类: 展示带指针成员的class设计
包含string.h头文件和string-test.cpp测试文件
OOP示例: 展示多个class之间的关系
包含oop-demo.h头文件和oop-test.cpp测试文件
教学方式:
通过这三个具体案例来讲解C++语言设计
案例涵盖从简单到复杂的程序设计
4. C++的历史
06:14
发展脉络:
B语言(1969年) → C语言(1972年) → C++语言(1983年)
早期名称: C with Class → C++
相关语言:
Java和C#等面向对象语言都受到C++影响
学习C++有助于理解其他面向对象语言
语言特点:
建立在C语言基础上
第一个被广泛接受的面向对象语言
关键字和概念与其他面向对象语言相似
5. C++的演化
07:51
主要版本:
C++98(1.0): 第一个标准化版本
C++03(TR1): 技术报告版本
C++11(2.0): 重大更新版本
C++14: 小幅度更新版本
学习重点:
课程内容基于C++98标准
目前业界主要使用C++98
C++11新特性尚未被广泛采用
学习组成:
语言本身(语法和语义)
标准库(重要组成部分)
现代编程语言都包含庞大的标准库
不使用标准库的C++程序员不是合格的程序员
6. 参考书目
11:10
语言基础:
《C++ Primer》: 百科全书式的C++入门书籍(第五版)
《The C++ Programming Language》: C++之父Bjarne Stroustrup所著(第四版)
进阶技巧:
《Effective C++》: Scott Meyers著(第三版)
提供55个改善程序技术和设计思维的有效做法
以条款形式给出专业建议
标准库:
《The C++ Standard Library》: 全面介绍标准库
《STL源码剖析》: 深入分析标准库实现(适合高级学习者)
学习建议:
从基础语言书籍开始
通过Effective系列提升编程技巧
标准库学习是成为专业C++程序员的必经之路