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++与面向对象设计
 - 课程回顾与总结
 
 
六、课程资源
可获取的课程资源见:教学资源。