C++面向对象编程高级培训
Saturday, 20 August 2011 13:55
There are no translations available.
一、课程目标
本次课程围绕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
六、课程资源
可获取的课程资源见:教学资源。