第二章 面向对象程序设计(14+10学时)
§2.1 C++初步( 3学时) 一、数据类型
1. C++的不同的数据类型 2. C++的不同的运算符
二、C和C++的不同的输入输出机制(1学时) 1. C++中的输入输出流的基本概念
主要说明c++中输入输出流的基本概念。 2.使用输出流对象cout输出数据的基本方法和格式
使用cout实现数据输出时系统的处理方式;实现数据输出时的格式和具体要求;简单介绍输出流中常用的一些控制符。
3.使用输入流类对象cin输入数据的基本方法和格式
使用cin实现数据输入时系统的处理方式;实现数据输入时的格式和具体要求;简单介绍输入流中常用的一些控制符。
三、C和C++函数概念的区别(C++中函数的重载、内联等) 1. 内联函数的基本概念
简单介绍内联函数的基本概念,和普通函数的区别。理解内联函数定义的要求和建议性的特点。 2. 函数的重载
函数重载的概念,通过例题求:两个整型数据、两个实型数据、三个整型数据的最大值问题,分析函数重载的要求、格式和函数的调用规则。 3. 带默认参数的函数
带默认参数值的函数的基本书写格式,调用规则和不同调用方式下调用结果的分析比较。
4. 引用和引用作函数的参数
C++中引用的基本概念和变量的引用的定义格式和使用规则; 引用的作用(作为函数的参数、引用返回值、常引用、引用多态等) 四、C++中和常变量相关的概念(1学时) 1. 常变量的基本概念和特点 2. 常变量作函数的参数
通过具体实例进行分析。主要掌握常变量作为函数参数的作用。 3. 指向常变量的指针变量
基本概念、特点和具体的应用。 4. 指向变量的常指针
基本概念、特点和具体的应用。 五、内存的动态分配 1.内存的动态分配的概念
2.使用new和delete实现对内存的动态分配
六、C的面向过程编程思想和C++面向对象的编程思想的区别(1学时) 1. 面向过程的编程思想
通过一个具体的实例分析面向过程的编程思想在解决实际问题时的应用。(比如求三角型周长和面积)。 2. 面向对象的编程思想
把上面同样的实例用面向对象的编程思想进行分析,进而编写出符合面向对象的程序。 使用面向对象思想编写的程序在执行时的事件(消息)驱动、和使用面向过程编程思想编写的程序在执行时的过程驱动,两种程序不同的执行原则分析。从而具体分析面向对象编程思想在大型软件设计中的优势。
两种不同编程思想解决问题时思维方式的区别,面向过程的编程思想和面向对象的编程思想的联系。
3. 面向对象的编程思想的三大基本特性
具体介绍封装性、继承性和多态性三大基本特性,及三大特性在面向对象程序设计中的具体体现和基本作用。 实验一:C++初步
1.C++输入输出 2.C++中函数的基本概念 3.C++中的常变量等概念 §2.2类和对象(4学时+2) 一、类定义的基本方法(1学时) 1. C中的结构体到C++的类
通过复习结构体类型和结构体类型变量的定义、引用等知识引入类和对象的定义。通过结构体类型和结构体类型变量的定义、引用等知识的复习,进一步加深对类与对象的理解。 2. 类的定义方法
“抽象”的方法、封装性在类的定义中的具体的体现;
通过对具体实例(三角形、矩形、圆类)的分析、抽象,得出三角形类、矩形类、圆形类等的具体的定义。重点分析类定义的基本形式,类的数据成员和成员函数的含义及具体的描述方法。
3. 类成员的访问属性(public、private、protected)
通过上面的实例具体的分析:定义类时类的成员的访问属性的限定原则,类成员不同
访问属性的访问规则。
4. 类的数据成员和成员函数,类的成员函数的定义
针对上面的实例,具体分析类成员函数的的概念,和各个类的各个成员函数的具体的定义要求和定义形式。
二、对象的定义及引用、类与对象的概念的区别(1学时)
在讲解时,应该强调具体的应用,简化类的定义。具体分析实际应用对象的不同成员的引用方法
1. 类对象的定义和引用
对象的基本概念,针对前面定义好的类,具体的定义类的对象。分析类的对象的本质,结合前面复习过的结构体类型变量的知识,具体分析类对象的引用规则,重点分析类对象对不同访问属性的成员的访问权限和访问方式。
类对象的内存分配情况分析。
分析类的成员函数为类的所有对象所共享的特点;
通过对this指针的介绍,具体分析:通过类的不同对象调用同一个成员函数,访问的是每个对象各自的数据成员,这一概念的具体实现原理。 2. 类与对象概念的区别和联系
结合结构体类型和结构体类型的变量区别和联系,具体分析类与对象本质上就是类型与变量之间的关系。
三、构造和析构函数(2学时) 1. 构造函数的概念和特点
构造函数的概念和基本作用,构造函数的调用规则,以及构造函数的主要用途。 针对前面定义的类,具体的分析构造函数的调用规则。 2. 缺省构造函数
通过具体的实例分析,缺省构造函数的基本概念,在具体定义该类对象时缺省构造函数
的作用分析。 3. 自定义构造函数
a. 无参构造函数
无参构造函数的定义形式和调用规则;无参构造函数和缺省构造函数的区别和联系。 b. 带参数的构造函数
带参构造函数的定义规则,具体的定义方式。类定时定义了带参构造函数时,在定义类的对象时具体定义规则。
带参构造函数定义时的参数初始化表的形式。 带默认参数的构造函数的定义和调用规则。 4. 构造函数的重载
具体分析构造函数的重载形式,主要掌握不同的类的对象的定义形式会调用不同的构造函数。
5. 拷贝构造函数
拷贝构造函数的作用和具体的定义格式。拷贝构造函数的主要用途。 重点分析:构造函数的基本作用、使用构造函数的目的、构造函数的调用规则。
难点:定义类的对象的格式不同,系统会调用不同格式的构造函数,二者之间的对应关系。 何时调用复制构造函数。 6. 析构函数
析构函数的概念、作用和具体的定义规则。 7.构造和析构函数的调用规则
定义一个类的对象并对它进行引用,整个过程中构造函数和析构函数调用的先后顺序和具体的调用规则。
重点:一个类中如果定义了多个构造函数,在定义一个类的若干个对象时,构造函数的调用顺序和调用规则分析,析构函数的调用顺序分析。 实验二 类与对象
1.会通过对实际问题的抽象创建符合要求的类;能准确写出并实现类的数据成员和成员函数;能根据需要定义类的构造和析构函数。
2.能准确定义一个类的对象;能准确对对象进行操作。 §2.3 数据的共享与保护(2学时+2) 一、数据的共享(1学时)
1. 静态成员(静态数据成员和静态成员函数)
类的静态数据成员的引用规则,通过具体的实例分析类的静态成员在同类的不同对象间实现数据共享的特点。
类的静态成员函数的作用和具体的引用规则。 2. 友元(友元函数、友元类)
友元的基本概念。友元类和友元函数特点和基本规则。 通过具体实例分析友元实现数据共享的特点。 二、共享数据的保护(1学时) 1. 常对象
常对象的基本概念,常对象的特点。 2. 对象的常成员
对象的常数据成员和常成员函数的特点 3. 指向对象的常指针
指向对象的常指针的概念、特点和应用(作为函数的参数)
4. 指向常对象的指针变量
基本概念和访问特点。 5. 对象的常引用
常引用的基本概念、特点和应用(作为函数的参数)。
此部分中,其它的知识,比如:指向常对象的指针、指向对象的常数据成员的指针等,可以结合实例简单介绍。 实验三 数据共享和共享数据保护
1.通过执行程序分析:类的静态成员的定义和其实现数据共享的特点。 2.通过执行程序分析友元对数据共享的实现。
3.编写程序分析各种常数据对数据保护作用的具体体现。 §2.4 类的继承和派生(2.5学时+2) 一、单继承(1学时)
1. 单继承派生类的对象的组成
派生类对象的组成情况分析;派生类对象的内存分配情况。 2. 单继承的派生类中基类成员的访问属性
不同继承方式下,派生类对象的基类成员的访问属性分析; 多重继承时,派生类对象中间接基类成员的访问属性分析。 3. 单继承派生类的构造和析构函数。
构造和析构函数的基本格式,和调用顺序。 二、多继承(1.5学时)
1.多继承的基本概念,多继承派生类的组成、成员的访问属性 2.多继承派生类的构造函数和析构函数的定义和调用规则 通过具体实例分析。
3.多继承中的二义性问题分析和具体的解决方法
二义性问题产生的原因;必然产生二义性的情况分析。 二义性问题的解决方法:同名覆盖、类名限定和虚基类 4.虚基类
虚基类的定义形式;使用虚基类的目的和具体的使用情况限制。
虚基类解决二义性问题的具体分析(使用虚基类的派生类的对象的组成情况)。 使用虚基类的派生类的构造函数的定义形式和调用规则。 实验四 继承与派生
1.通过编写简单的程序理解:单继承派生类的定义,成员的组成、类对象成员的访问属性等基本概念。
2.单继承派生类的构造和析构函数的定义和调用规则。