一、课程的概况和总体设计
《c++程序设计》是计算机科学与技术专业本科生的一门必修课程。c++软件开发方法是吸收了软件工程领域有益的概念和有效的方法而发展起来的一种软件开发方法。它集抽象性、封装性、继承性和多态性于一体,可以帮助人们开发出模块化、数据抽象程度高的,体现信息隐蔽、可复用、易修改、易扩充等特性的程序。
本课程主要介绍c++程序设计的方法和C++语言的基本概念。以C++语言中的c++机制为主。学习者在学习过程中可以通过大量的程序实例和相关练习,逐步掌握C++的面向过程和c++的功能,从而掌握c++程序设计的基本知识和基本技能
二、教学内容
(一)c++的程序设计方法和C++简介:
c++程序设计的基本思想及基本概念:对程序的的质量要求;程序的模块化和结构化;
为什么要c++:从面向过程到c++
C++语言发展的历史:c++语言分类;C++中支持c++的特点
c++的软件开发环境与Visual C++
(二)程序设计基础:
1. C++的程序结构
程序从概念到执行:编写一个C++程序;注释;文件包含预处理语句#include;条件预处理语句;宏替换语句;main函数;从main中返回;终端输出输入。
2.C++的数据类型:基本数据类型、复合数据类型和引申数据类型
基本数据类型:整型、浮点型、字符型、双精度浮点型和无值(void)
引申数据类型:指针、引用、数组(本章仅仅提及)
复合数据类型:结构、联合、类、位域、枚举(本章仅仅提及)
3. 常量和变量;
常量:整型常量;浮点型常量;字符型常量;枚举型常量
变量:变量的说明;变量初始化;变量的修饰符
4.表达式与操作符
什么是表达式
运算符:
赋值运算符;赋值中的类型转换;多重赋值;
算术运算符;自增与自减运算符;
关系和逻辑运算符;
位操作符;
条件操作符;
指针操作符
编译时的操作符sizeof;
其他:逗号(,)操作符;点(。)和箭头(->)操作符;括号[ ]和( )操作符;
操作符优先级
表达式的求值顺序;表达式中的类型转换
5.程序设计风格
(三)语句与程序流程:
语句:复合语句和块结构。
分支语句:if语句;嵌套的if语句;阶梯型if-then-else语句;条件表达式;switch开关语句;嵌套的switch语句。
迭代语句:for循环及其变化形式;无限循环;没有循环体的for循环;while循环;do-while循环
转移语句:return语句;goto语句;break语句;exit ( )语句;continue语句。
(四)函数:
模块化程序设计介绍
函数的一般形式
函数的参数:传值调用和引用调用;const参数;数组参数;引用参数;缺省参数;void参数
函数的返回值:返回语句:返回值;返回指针;返回引用;void返回值
递归函数
内联函数
函数和变量作用域
函数重载
函数指针
函数原型与强类型检查
main的参数传递与返回
(五)类与对象:
复合数据类型:结构、联合、位域和类
类的定义
类的成员变量和成员函数,存取级别,作用域分辨符
对象和类的关系
类的构造函数和析构函数:对象的初始化;构造函数的定义;析构函数;类/对象数组;特殊的构造函数X(const X X
静态类成员:静态成员变量;静态成员函数;
const成员:常量成员变量;常量成员函数
内联函数:在类中定义内联函数
友元:友元函数;友元类
this指针
嵌套类与局部类
在函数中对象传递的机制
类属性:类属函数;类属类
结构与类:结构元素的引用与赋值;结构数组;向函数传递结构;结构指针;结构中的数组和结构;结构作为类的定义
联合与类:联合作为类的定义;匿名联合类的成员变量和成员函数;
(六)数组、指针和引用:
对象数组:创建初始化和未初始化的数组;数组与指针;数组赋值;对象数组
指针:指针变量的定义、初始化;指针运算;指针数组;指向对象的指针;字符串指针
引用:引用参数;向对象传递引用;返回引用;引用与指针的关系;引用的常用方法
C++的动态存储分配:动态空间的申请与释放
(七)继承性与派生类:
类的层次概念:成员的继承;将概念和实现转变为类的层次
单继承:定义格式;成员存取控制;受保护基类的继承;向基类构造函数传递参数
多继承:多继承的定义方式;虚基类;二义性问题;多继承的应用
(八)多态性和虚函数:
函数重载:函数重载与二义性;重载构造函数;求重载函数的地址
运算符重载:双目运算符重载;单目运算符重载;建立增值和减值运算符的前缀和后缀形式;重载缩写运算符;引用在运算符重载中的应用;运算符重载的限制。
使用friend重载运算符:使用friend重载++和——;friend operator函数的作用
重载new和delete:重载数组的new和delete
重载某些特殊的运算符:重载[ ];重载( );重载->
重载逗号运算符
虚函数:继承虚属性;虚函数的层次性
纯虚函数:抽象类
早期和后期联编
(九)C++的I/O系统:
流的定义;基本的流类:C++的预定义流;
格式化的I/O
重载>:创建自己的插入符;创建自己的提取符
创建自己的操纵符函数:创建无参数的操纵符;创建带参数的操纵符
文件与文件流
文件操作:打开和关闭、文件的定位与随机存取、文件的读写
(十)模板
1.模板的概念
模板的含义;模板的一般定义形式;模板函数与模板类;模板的作用;队列类模板和模板类及对象
2.模板的参数(对非类型参数只参考就可以了)
类型参数和非类型参数;参数的默认值
3.模板的使用
模板的使用;队列类模板;模板的实例化
4.类模板中的友元(参考)
类模板中的友元定义;
5.利用模板进行程序设计举例
datalist类模板的定义;datalist类的操作的实现;int的datalist类的实例