C++面向对象编程高级培训
2011-08-20 13:55
一、课程目标
本次课程围绕C++面向对象编程这一课题,深入的讲解C++ OOP语言机制,以及运用面向对象技术有效架构C++应用。通过本次课程的学习,学员将具备以下能力:
- 深刻理解C++面向对象语言机制;
- 面向对象编程的若干法则。
二、参训要求
参加本次课程的学员须具备以下能力:
- 本次课程假定学员有编程经历,使用C/C++、Java或其它语言实际编写过代码;
- 能熟练使用Windows或Linux下的C++编译器(如g++)、调试器(如gdb)。
三、课程实践环境
- 学员自备电脑
- 实践平台 (以下二者之一):
- Win32 / Visual Studio 2008 (或更新)
- Linux 2.6.18+ x86-32 / GCC 4.1.2+ / Eclipse CDT 、vi
四、课程大纲
本次课程由以下几个部分构成:
1、从C到C++
- 引用和指针:为什么引用很重要
- const关键字:为什么const很重要
- 名字空间 (namespace)
2、深入C++对象
- 关于C++对象
- 内置类型的对象,如int、double对象
- 自定义类型的对象
- 对象类型的定义
- 关键字class和struct
- 类成员:成员函数和数据成员
- 静态数据成员
- 成员的访问控制
- 对象的size
- 关于this指针
- const成员函数、const究竟修饰什么
- mutable数据成员
- 4种特殊成员函数:constructor、destructor、copy constructor、operator=
- 对象的构造、初始化列表
- 对象的析构
- 对象的复制
- 什么情况下有必要显式定义4种特殊函数
- C++对象生命周期
3、操作符重载
- 关于C++中操作符重载机制
- 重要操作符重载
- 算术运算:+, -, *, /, %, ++, --, ...
- 关系运算:>, <, ==, !=
- 下标存取:[ ]
- 函数调用:(),函数对象
- 类型转换、单参数构造函数与隐式转换、阻止隐式转换 -- explicit关键字
- 友元与成员
4、面向对象基础 -- 继承
- 基类与派生类
- 再谈对象的构造与析构
- 虚函数、纯虚函数
- 派生类的内存布局、虚函数表
- 多态、多态类型、如何体现多态
- 虚析构、为什么虚析构很重要
5、关于继承更多的话题
- 多继承
- 虚继承与虚基类
- 对基类的访问、public / protected / private继承
- Down cast:static_cast<>和dynamic_cast<>
- 运行期类型识别 (RTTI)
6、C++与面向对象设计
- C++语言机制提供了完整的OOP支持
- 超越继承
- OOP若干法则和设计模式
- 封装变化,分离不变与变化
- 面向接口编程,而不是针对实现编程
- 多用组合、少用继承
- 努力保持交互对象间的松耦合
- 类设计的开闭原则:类应该对扩展开放、对修改关闭
- 依赖抽象,而不是依赖具体类
- 最少知识原则
- 好莱坞法则 (控制反转):不要打电话给我,我会找你的
- 单一责任原则:一个类应该只有一个引起变化的原因
五、时间安排
课程时间:3天,以每天6小时计,具体安排如下:
- Day1
- 1 - 从C到C++
- 2 - 深入C++对象
- 3 - 操作符重载
- Day2
- 4 - 面向对象基础 -- 继承
- 5 - 关于继承更多的话题
- Day3
- 6 - C++与面向对象设计
- 课程回顾与总结
六、课程资源
可获取的课程资源见:教学资源。