课程主题 | 课程内容 | 课程目标 |
阶段 | C++新特性,类和对象基本知识: C++与C语言的区别,基本程序结构; const,函数的默认参数,内联函数,函数重载,输入/输出流。new和delete;面向对象编程基本思想,基本的类和对象的程序模型。 | 掌握C++新特性,类和对象基本知识。 |
第二阶段 | 类和对象基本思想,构造函数,析构函数:进一步讲解类和对象基本思想以及基本程序模型;构造函数的作用,构造函数的重载和默认值,及其调用方式;在构造函数中申请内存;析构函数的作用和调用时候及调用顺序;在析构函数中释放内存;复制构造函数,在复制构造函数中申请内存(深拷贝),浅拷贝。 | 掌握类和对象基本思想,构造函数,析构函数。 |
第三阶段 | 类中特殊数据成员和函数成员的初始化等类的其它基本知识:常量成员、引用成员、类对象成员、静态成员的初始化;静态成员函数,const成员函数;const对象和const引用;用指针访问对象,对象的大小,this指针,对象数组,使用new和delete为对象分配内存和释放内存。 | 掌握类中特殊数据成员和函数成员的初始化等类的其它基本知识。 |
课堂实验 | 用示例测试当天的所有知识点。 |
------- |
基础实验 | 定义一个日期类(CDate),可以实现日期加一操作,年月日各用一个整数表示。 |
------------ |
第四阶段 | 类域,友元,运算符重载: 类作用域;类定义的作用域与可见域;对象的生存期、作用域和可见域;友元之非成员函数;友元之成员函数,友元函数的重载;友元类;运算符重载基本用法,成员函数和友元函数形式。 | 掌握类域,友元,运算符重载。 |
课堂实验 | 用示例测试当天的所有知识点。 |
---------------- |
基础实验 | 实现日期类(CDate)的加加(++)运算符重载。 |
------------ |
第五阶段 | 进一步讲运算符重载:基本运算符的重载,+,-,*,/,前置++,后置++等;赋值运算符重载函数,在赋值运算符重载函数中申请内存;函数调用运算符()重载;下标运算符[]重载;new和delete重载;指针-> 和*运算符重载;类型转换. 由基本类型(int, double)向自定义类型的转换(构造函数完成);由自定义类型向其它类型的转换,需要靠类型转换函数实现。 | 掌握常见运算符的重载示例。 |
课堂实验 | 用示例测试当天的所有知识点。 |
----------- |
基本实验 | 实现日期类(CDate)和整数加减及两个日期之间的的减法运算。 |
-------------------- |
第六阶段 | 继承:派生的概念(单基派生示例);派生方式及其访问权限(public,protected,private);多基派生及其二义性和解决方案;共同基派生及其二义性和解决方案(虚基类)。 | 掌握继承相关知识。 |
课堂实验 | 用示例测试当天的所有知识点。 |
--------- |
基本实验 | 在日期类(CDate)的基础上派生一个日期时间类(CDateTime),保存年月日时分秒,可以将时间字符串“2014032512:30:30”转换为对应的时间。 |
------------------ |
第七阶段 | 继承,多态:单基、多基、虚基派生的构造函数和析构函数;继承与组合;基类和派生类之间的相互转换及内存模型。 | 掌握继承、多态相关知识。 |
课堂实验 | 用示例测试当天的所有知识点。 |
---------------- |
基本实验 | 思考昨天的作业中,从CDate类继承出来一个CDateTime类好不好,为什么。 |
--------------------------- |
第八阶段 | 多态:静态联编、动态联编、虚函数的定义;虚函数的访问. 对象访问,指针访问,引用访问,this访问,构造函数和析构函数中访问;虚函数表;纯虚函数和抽象类,protected构造函数的抽象类;private构造函数与单件设计模式;虚析构函数;虚函数引入的二义性(可选);重载、覆盖和隐藏。 | 掌握多态相关知识。 |
课堂实验 | 用示例测试当天的所有知识点。 |
------------------ |
基本实验 | 消化当天所学知识点。 |
----------------------- |
第九阶段 | 模版:模版(泛型编程)的思想。函数模版的定义和实例化(隐式实例化和显式实例化);函数模版的特化和重载及优先级;类模版的定义和隐式实例化,显式实例化;类模版的完全特化和部分特化,重载和优先级;模版的嵌套(可选): 函数成员模版,对象成员模版,模版做参数。 | 掌握函数模版和类模版的用法。 |
课堂实验 | 用示例测试当天的所有知识点。 |
---------------- |
基本实验 | 用类模版实现一个通用的顺序栈的数据结构。 |
---------------------- |
第十阶段 | 名称空间,string类,智能指针,typeid操作符: 模版(泛型编程)的思想。函数模版的定义和实例化(隐式实例化和显式实例化);函数模版的特化和重载及优先级;类模版的定义和隐式实例化,显式实例化;类模版的完全特化和部分特化,重载和优先级;模版的嵌套(可选):函数成员模版,对象成员模版,模版做参数。 | 掌握名称空间,string类,智能指针,typeid操作符的用法。 |
课堂实验 | 用示例测试当天的所有知识点。 |
---------------- |
基本实验 | 用类模版实现一个通用的顺序栈的数据结构。 |
-------------- |
第十一阶段 | 名称空间,string类,智能指针,typeid操作符:名称空间的定义和使用;实体的作用域与可见域及using语句;名称空间的嵌套和匿名名称空间;string类对象的定义和使用,输入输出,赋值,清空;string类字符串对象的元素添加,元素删除,元素存取,查找等用法;智能指针和typeid操作符(可选)。 | 掌握名称空间,string类,智能指针,typeid操作符的用法。 |
课堂实验 | 用示例测试当天的所有知识点。 |
----------- |
基本实验 | 使用string类处理字符串。 |
----------- |
测试 | 考核达80分进入下一阶段学习;否则重新学习,如坚持进下一阶段,需个人签字。 |
-------------- |