内容简介
本书作为C++语言的基础教材,详细介绍了C++语言的发展历程,深入讲述了面向对象的程序设计方法的步骤,注重理论结合实践,采用循序渐进的方法,系统地介绍面向对象的思想和面向对象程序设计方法。全书共13章,主要介绍了C++语言的发展历程、C++程序设计基础、函数、用户自定义数据类型、类与对象、继承与派生、多态、模板、输入/输出流、字符串、STL编程、异常处理等内容,每章除了大量的例题外,还深入分析若干综合实例,内容涵盖当前章节的主要知识点。另外,在3章的应用案例中,以学生信息管理系统为例,介绍了C++面向对象开发的具体过程。 本书在编写的过程中力求做到概念清晰、由浅入深、通俗易懂、讲解详尽,适用于应用型本科、高职高专学生使用,也便于读者自学。无论是编程新手,还是具有编程基础的读者,都可从本书中获得新知识。
目录
章 C++概述 1.1 C++语言发展 1.1.1 C++与C语言的关系 1.1.2 C++的特点及应用 1.2 开发环境 1.2.1 C++开发环境介绍 1.2.2 Visual Studio 2015开发环境 1.3 C++程序框架及运行过程 1.3.1 建立C++程序 1.3.2 C++运行过程 1.3.3 部分程序错误及解决方案 1.4 C++程序举例 案例1-1:简单的图形输出程序 案例1-2:MFC应用程序第2章 C++程序设计基础 2.1 数据类型 2.1.1 C++字符集和标识符 2.1.2 基本数据类型 2.2 常量 2.2.1 常量的定义 2.2.2 字面常量 2.2.3 字符常量 2.2.4 符号常量 2.3 变量 2.3.1 变量的定义 2.3.2 变量的赋值 2.3.3 常变量 2.4 运算符与表达式 2.4.1 基本运算符 2.4.2 其他运算符 2.4.3 运算符的优先级 2.4.4 表达式 2.4.5 类型转换 2.5 程序流程控制结构 2.5.1 顺序结构 2.5.2 选择结构 2.5.3 循环结构 2.5.4 break和continue语句 2.5.5 goto语句 2.6 应用实例 案例2-1:多分支选择结构应用 案例2-2:循环结构应用第3章 函数 3.1 函数的概念和定义 3.2 函数的调用和声明 3.2.1 函数调用的形式 3.2.2 函数的递归 3.2.3 函数的嵌套 3.2.4 函数的声明 3.3 函数的参数传递 3.3.1 实际参数与形式参数 3.3.2 函数的返回值 3.4 带默认值的函数 3.5 函数的重载 3.6 函数的内联 3.7 变量的作用域与存储类型 3.7.1 局部变量 3.7.2 全局变量 3.7.3 变量的存储类型第4章 用户自定义数据类型 4.1 数组 4.1.1 一维数组的定义与使用 4.1.2 二维数组的定义与使用 4.1.3 多维数组 4.1.4 字符数组 4.1.5 数组与函数 4.2 指针 4.2.1 指针的定义与使用 4.2.2 指针与字符串 4.2.3 指针与数组 4.2.4 动态内存分配 4.2.5 指针常量和常量指针 4.2.6 指针与函数 4.3 引用 4.3.1 引用的定义 4.3.2 常引用 4.3.3 引用与函数 4.4 枚举 4.5 结构体与联合 4.5.1 结构体 4.5.2 联合第5章 类与对象 5.1 面向对象程序设计的概念 5.1.1 面向过程与面向对象 5.1.2 面向对象的特征 5.1.3 面向对象软件开发 5.2 类和对象 5.2.1 类的声明 5.2.2 对象的定义与使用 5.2.3 成员的访问权限 5.3 构造函数与析构函数 5.3.1 构造函数的声明与使用 5.3.2 重载构造函数 5.3.3 带默认参数值的构造函数 5.3.4 析构函数 5.4 构造函数 5.5 对象的使用 5.5.1 对象指针 5.5.2 对象引用 5.5.3 对象数组 5.5.4 动态对象 5.5.5 成员对象 5.6 this指针 5.6.1 this指针的作用 5.6.2 this指针的特点 5.7 友元 5.7.1 声明友元函数 5.7.2 声明友元类 5.8 静态成员 5.8.1 静态数据成员 5.8.2 静态成员函数 5.9 常成员与常对象 5.9.1 常对象 5.9.2 常数据成员 5.9.3 常成员函数 5.10 综合实例:股票管理第6章 继承与派生 6.1 继承与派生的概念 6.1.1 概念介绍 6.1.2 多重继承 6.1.3 多层继承(多层派生) 6.2 派生类的定义和构成 6.2.1 派生类的定义 6.2.2 派生类的构成 6.3 继承的方式 6.3.1 公有继承 6.3.2 私有继承 6.3.3 保护继承 6.4 派生类的构造与析构 6.4.1 单继承的构造 6.4.2 派生类构造函数 6.4.3 派生类的析构 6.5 多继承 6.5.1 多继承的构造 6.5.2 多继承的析构 6.5.3 二义问题 6.6 类型兼容 6.7 虚基类 6.7.1 虚基类的定义 6.7.2 虚基类的构造 6.7.3 虚基类的构造与析构 6.8 应用案例:继承派生应用第7章 多态 7.1 多态的概念 7.2 运算符重载 7.2.1 重载机制 7.2.2 重载规则 7.2.3 重载为类的成员函数 7.2.4 重载为类的友元函数 7.2.5 常用运算符重载示例 7.3 虚函数 7.3.1 静态联编与动态联编 7.3.2 虚函数的定义与使用 7.3.3 虚析构函数 7.4 纯虚函数与抽象类 7.4.1 纯虚函数 7.4.2 抽象类 7.5 应用案例:多态应用第8章 模板 8.1 模板的概念 8.2 函数模板 8.2.1 函数模板的定义 8.2.2 函数模板的实例化 8.2.3 函数模板与函数重载 8.2.4 函数模板的具体化 8.2.5 函数模板的重载 8.3 类模板 8.3.1 类模板的定义 8.3.2 类模板的实例化 8.3.3 类模板与静态成员
摘要与插图
1.1C++语言发展
1.1.1C++与C语言的关系
1.;C语言
1967年剑桥大学的Martin Richards为编写操作系统软件和编译程序开发了BCPL语言。1970年,Ken Thompson在继承BCPL语言诸多优点的基础上开发了实用的B语言。1972年,贝尔实验室的Dennis Ritchie在B语言的基础上做了进一步的充实和完善,开发出了C语言。C语言具有许多优点:语言简洁灵活、运算符和数据类型丰富、具有结构化控制语句、程序执行效率高,同时具有语言和汇编语言的优点等。与其他语言相比,C语言可以直接访问物理地址,与汇编语言相比又具有良好的可读和可移植。因此C语言得到了极为广泛的应用,后来的很多软件都用C语言开发括Windows、Linux等。C语言是面向过程的,只能把代码封装到函数,没有类。所谓面向过程,是通过不断地调用函数来实现预期能。在C语言中,我们会把重复使用或具有某能的代码封装成一个函数,将具有相能的函数放在一个源文件,调用函数时,引入对应的头文件即可,如图1-1所示。但是随着C语言应用的推广,其存在的缺陷也逐渐暴露出来。例如,C语言对数据类型检查的机制比较弱,缺少支持代码重用的结构;随着计算机能的飞速提高,软件工程规模的扩大,很多软件的大小都超过1GB,如Flash、Visual Studio等,用C语言开发这些软件显得吃力了。C语言是一种面向过程的编程语言,不能满足运用面向对象的方法开发软件的需要。为克服C语言本身存在的缺点,同时为支持面向对象的程序设计,1980年贝尔实验室的Bjarne Stroustrup在C语言基础上创建、开发出了一种通用的程序设计语言——C++。2.C++语言C++读作“C加加”,是CPlus Plus的简称。C++是在C语言的基础上开发的一种集面向对象编程、泛型编程和过程化编程于一体的编程语言。在C++中,多了一层封装,是类(Class)。类是一个通用的概念,C++、C井、Java、PHP等很多编程语言中都有类,可以通过类来创建对象(Object)。在C++中,可以将一个类或多个类放在一个源文件中,使用时引入对应的类即可。封装让C++多了很多特,并成为一种面向对象的程序设计语言。C++中项目的组织方式如图1-2所示。1.1.2C++的特点及应用1.C++的特点(1)保持与C兼容。C++既保持了C语言的优点,又对C的类型进行了改革和扩充,C++的编译系统能检查出更多的类型错误。另外,由于C语言的广泛使用,因而极进了C++的普及和推广。大多数的C程序代码略作修改或不需修改可在C++的集成环境下
……



VIP会员