全新正版书籍,24小时发货,可开发票。
¥ 39.7 8.1折 ¥ 49 全新
库存5件
作者甘玲、邱劲
出版社清华大学出版社
ISBN9787302532866
出版时间2019-11
装帧平装
开本16开
定价49元
货号28477936
上书时间2024-12-19
前言
从20世纪60年代提出面向对象概念至今,面向对象技术已发展成为一种比较成熟的编程思想,并且逐步成为目前软件开发领域的主流技术。这种技术从根本上改变了人们以往设计软件的思维方式,它集抽象性、封装性、继承性和多态性于一体,实现了代码重用和代码扩充,极大地减少了软件开发的繁杂性,提高了软件开发效率。C 为面向对象技术提供全面支持,是一个可编写高质量的用户自定义类型库的工具,也是常用的面向对象程序设计语言。其核心应用领域是广泛意义上的系统程序设计。此外,C 还被成功地用到许多无法称为系统程序设计的应用领域。从摩登的小型计算机到的超级计算机,几乎所有操作系统上都有C 的实现。同时,理解和掌握C 语言,都离不开面向对象技术的指导,因此,通常结合C 介绍面向对象技术的原理和方法。
高等院校计算机科学与技术及相关专业大都开设了该课程,其目的是让学生掌握面向对象程序设计的概念和方法,深刻理解面向对象程序设计的本质,并用面向对象技术来编写程序、开发软件。为了给广大学生提供一种内容全面的教材,作者编写了《面向对象技术与Visual C 》。教材自出版以来受到了广大师生的好评,被全国近百所高校师生选用。但是,在反复的教学实践中作者产生了新的经验体会,参考了国内外新的资料,同时,根据用书单位的师生们提出的很多宝贵意见和建议,作者对部分章节进行了调整。经过10多年的改进,终形成了《面向对象技术与Visual C (第2版)》。本书将C 面向对象知识与Visual C 融会贯通,是一本内容全面的教材,便于大学生学习、研究生参考以及读者自学。
全书共14章,分为三部分: 部分(第1、2章)是C 语言基础部分,这部分从总体上介绍面向对象技术的基本概念和基本特征,以及C 对C语言基础的扩展,说明C 与C语言的不同之处; 第二部分(第3~8章)是C 面向对象技术部分,是本书的核心,强调面向对象技术的原理,这部分以面向对象技术的四大特征为线索展开对C 的讨论,为第三部分的应用奠定理论基础; 第三部分(第9~14章)是C 的应用部分,主要介绍在Visual C 平台下基于MFC的Windows应用程序开发方法。
为了有利于学习,节省篇幅,有些知识点通过例题介绍,以达到事半功倍的效果。本书精选了大量的例题,并且在Visual C 上调试通过。
本书的主编是甘玲(编写第1~4章和第7章),副主编是邱劲(编写第9~14章),参与编写的还有罗俊逸(编写第5、6章),张虹(编写第8章)。全书由甘玲统稿。另外,李盘林、冯潇以及使用教材的全国师生对本书的修订提出了宝贵意见,在此表示感谢。同时,感谢邱玉辉教授、冯博琴教授和王国胤教授,他们对本书给予了极大的关注和支持。感谢本书所列参考文献的作者,感谢为本书出版付出辛勤劳动的清华大学出版社的工作人员,感谢所有使用教材的师生们。
由于作者水平有限,难免有疏漏之处,恳请广大读者批评指正。在使用本书时如遇到问题,或想索取本书例题的源代码与电子讲稿,请与责任编辑联系。联系方式: 404905510@qq.com。
作者
2019年2月
本书通过丰富的实例和详细的步骤,介绍基于MFC的Windows应用程序的设计,为全面掌握面向对象思想和Windows应用程序的设计打下一个基础。本书设计了丰富的实践环节,帮助读者更好地理解和掌握所学知识。
甘玲,重庆邮电大学计算机学院基础部,教授。
曾主编教材:
1.主编《面向对象技术与Visual C 》,2004.8,438千字,清华大学出版社,获重庆邮电学院2004年优秀教学成果二等奖
2.主编《面向对象技术与Visual C 学习指导》,2005.12,300千字,清华大学出版社
3.参编《C/C 语言程序设计》,2005.7,332千字,科学出版社
4.主审《数据库技术》,2002.1,309千字,机械工业出版社
5.主编《计算机操作与应用实验与习题》,1998.8,396千字,重庆大学出版社
6.参编《计算机操作与应用教程》(第二版) ,1998.8,555千字,重庆大学出版社
7.主编《FoxPro数据库教程》,1998.8,350千字,重庆机器制造学校
8.主编《汉字dBASE Ⅲ数据库及其应用》,1994.6,365千字,重庆市高等教育自学考试工作委员会
目录
部分基 础 知 识
第1章面向对象技术概述
1.1面向对象与面向过程的区别
1.2基本概念
1.2.1对象与类
1.2.2消息与事件
1.3面向对象技术的基本特征
1.3.1抽象性
1.3.2封装性
1.3.3继承性
1.3.4多态性
1.4C 对面向对象技术的支持
1.5本章小结
1.6习题
第2章C 对C语言基础的扩展
2.1C 基本程序与C的不同
2.1.1输入输出初步
2.1.2编译预处理
2.1.3注释
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.3.4函数重载
2.4名字空间
2.5本章小结
2.6习题
第二部分C 面向对象技术
第3章类与对象
3.1类
3.1.1类的定义
3.1.2访问权限控制
3.1.3成员函数的实现
3.2对象
3.2.1对象的定义
3.2.2类成员的访问
3.3构造函数和析构函数
3.3.1构造函数
3.3.2析构函数
3.3.3复制构造函数
3.4静态成员
3.4.1静态成员的定义
3.4.2静态数据成员的初始化
3.4.3静态成员的调用
3.5应用举例
3.6本章小结
3.7习题
实验3.1类的定义和对象的使用
实验3.2静态成员和对象数组的使用
第4章继承与派生
4.1继承的层次关系
4.2派生类
4.2.1派生类的定义
4.2.2派生类的生成过程
4.3访问权限控制
4.3.1公有继承
4.3.2私有继承
4.3.3保护继承
4.4派生类的构造函数和析构函数
4.4.1派生类的构造函数
4.4.2派生类的析构函数
4.5多继承
4.5.1多继承的定义格式
4.5.2多继承的构造函数
4.5.3二义性问题与虚基类
4.6本章小结
4.7习题
实验4.1类的继承和派生
实验4.2多继承
第5章多态性
5.1类型兼容规则
5.2多态的实现类型
5.3联编
5.3.1静态联编
5.3.2动态联编
5.4虚函数
5.4.1虚函数的声明
5.4.2虚函数的使用
5.5纯虚函数与抽象类
5.5.1纯虚函数的定义
5.5.2抽象类的使用
5.6运算符重载与友元
5.6.1运算符重载的定义
5.6.2运算符重载规则
5.6.3运算符重载为成员函数
5.6.4友元及运算符重载函数
5.7类型转换
5.7.1显示转换
5.7.2特定的4个转换运算符
5.8本章小结
5.9习题
实验5.1虚函数的使用
实验5.2抽象类的使用
实验5.3运算符重载和友元
第6章模板
6.1模板的概念
6.2函数模板与模板函数
6.2.1函数模板的定义
6.2.2模板函数的生成
6.3类模板与模板类
6.3.1类模板的定义
6.3.2类模板的使用
6.4STL简介
6.4.1容器与算法
6.4.2迭代器
6.4.3函数对象
6.4.4STL的使用
6.5本章小结
6.6习题
实验STL的使用
第7章输入输出流
7.1流的概念
7.2非格式化输入输出
7.2.1非格式化输出
7.2.2非格式化输入
7.3格式化输入输出
7.3.1用ios类成员函数格式化
7.3.2用操作符函数格式化
7.4文件的输入输出
7.5本章小结
7.6习题
第8章异常处理
8.1异常处理的基本思想
8.2异常处理的实现
8.2.1异常处理的语法
8.2.2异常处理中的构造与析构
8.3应用示例
8.4本章小结
8.5习题
第三部分Visual C 的Windows编程技术
第9章Visual C 的Windows编程基础
9.1Windows编程基础
9.1.1Windows编程模型
9.1.2消息处理
9.1.3图形设备接口
9.1.4资源
9.1.5SDK程序设计
9.2用MFC创建Windows应用程序
9.2.1MFC库简介
9.2.2MFC类的层次结构
9.2.3文档/视图结构
9.2.4消息映射
9.2.5分析MFC程序结构
9.2.6MFC程序运行机制
9.3本章小结
9.4习题
实验利用AppWizard向导生成Windows应用程序
第10章GDI编程
10.1Windows GDI
10.1.1设备环境
10.1.2绘图模式
10.1.3映射模式
10.2文本输出与图形绘制
10.2.1文本输出
10.2.2绘图工具与函数
10.3本章小结
10.4习题
第11章键盘和鼠标消息及应用
11.1键盘消息
11.1.1读键盘输入
11.1.2插入符号
11.2鼠标消息
11.2.1使用鼠标绘图
11.2.2光标的改变
11.3本章小结
11.4习题
第12章资源编程
12.1菜单
12.1.1菜单简介
12.1.2菜单的建立和实现
12.2工具栏和状态栏
12.2.1工具栏的实现
12.2.2状态栏的实现
12.3对话框和控件
12.3.1控件简介
12.3.2模式对话框
12.3.3非模式对话框
12.4本章小结
12.5习题
第13章文档应用程序设计
13.1单文档应用程序
13.1.1将文档存入磁盘文件
13.1.2滚动和分割视图
13.1.3在程序中实现分割功能
13.2多文档应用程序结构
13.2.1多文档中的文档/视图结构
13.2.2生成一个多文档应用程序
13.2.3生成的类和文件
13.2.4处理多文件类型和多菜单
13.2.5多文档应用程序示例
13.3本章小结
13.4习题
实验设置字形和颜色应用程序设计
第14章对话式应用程序设计
14.1对话框应用程序
14.1.1创建对话框应用程序
14.1.2应用示例
14.2基于表单的应用程序
14.2.1创建基于表单的应用程序
14.2.2应用示例
14.3本章小结
14.4习题
参考文献
本书通过丰富的实例和详细的步骤,介绍基于MFC的Windows应用程序的设计,为全面掌握面向对象思想和Windows应用程序的设计打下一个基础。本书设计了丰富的实践环节,帮助读者更好地理解和掌握所学知识。
甘玲,重庆邮电大学计算机学院基础部,教授。
曾主编教材:
1.主编《面向对象技术与Visual C 》,2004.8,438千字,清华大学出版社,获重庆邮电学院2004年优秀教学成果二等奖
2.主编《面向对象技术与Visual C 学习指导》,2005.12,300千字,清华大学出版社
3.参编《C/C 语言程序设计》,2005.7,332千字,科学出版社
4.主审《数据库技术》,2002.1,309千字,机械工业出版社
5.主编《计算机操作与应用实验与习题》,1998.8,396千字,重庆大学出版社
6.参编《计算机操作与应用教程》(第二版) ,1998.8,555千字,重庆大学出版社
7.主编《FoxPro数据库教程》,1998.8,350千字,重庆机器制造学校
8.主编《汉字dBASE Ⅲ数据库及其应用》,1994.6,365千字,重庆市高等教育自学考试工作委员会
第3章类与对象
类是C 面向对象技术中的一个重要概念,它提供了抽象和封装机制,是一种较好的模块化编程手段。从面向对象的观点来看,客观世界就是由一个个独立的对象组成,在程序中,对象存储着数据和相应操作。类对具有共性的对象进行统一描述。本章围绕类的组成与对象的使用展开讨论,首先介绍类的定义、类的成员及访问控制,实现面向对象技术的封装机制,然后介绍类的实现、对象的创建和通过对象访问类成员的方法,介绍类的特殊函数——构造函数、析构函数和复制构造函数,介绍类的特殊成员——静态成员,并且给出一些典型的应用示例,全面展现类这一抽象机制的内核。
3.1类
对象是组成客观世界的基本单元,程序员的主要任务是设计各种各样的对象。在面向对象程序中,并不是将各个具体的对象都进行描述,而是忽略其非本质的特性,找出其共性,将对象划分成不同的类。类可以看成是一种模板,它定义了属于该类的所有对象的共同特征,而对象是类的实例。类是面向对象程序设计的核心,利用它可以实现对象的抽象、数据和操作的封装以及信息的隐蔽。
从语言角度来说,类是一种新的数据类型,是一种用户自定义数据类型,而对象是具有这种类型的变量。类是一种将数据和作用于这些数据上的操作组合在一起的复杂数据类型,是可重用的基本单元。
3.1.1类的定义
类定义就是对同类对象的属性和行为进行统一描述。属性用数据表示,行为用函数表示。类中定义的数据称为数据成员,定义的函数则称为成员函数。数据和函数统一称为类成员。
类定义一般分为说明部分和实现部分。说明部分说明该类中的成员,实现部分是对成员函数的定义。一般将说明部分放在头文件中,供所有相关应用程序共享,而实现部分放在与头文件同名的源程序文件中,便于修改,也可以将说明部分和实现部分放在同一个源程序文件中。
类定义的一般格式如下:
class <类名>
{
public:
<成员函数或数据成员的声明>;
private:
<数据成员或成员函数的声明>;
protected:
<数据成员或成员函数的声明>; 说明部分
};
<各个成员函数的定义> 说明部分
其中,class是定义类的关键字,<类名>是用户自定义的标识符,在花括号内的是类的说明部分,说明该类的数据成员和成员函数。关键字public、private和protected是访问权限修饰符。当私有成员放在类中前面声明时可省略关键字private。
例31示例学生类的定义。
//student.h
class Student//定义学生类Student
{ //声明类成员
public:
void input(char* pid,char* pname,int a,float s);
void chgScore(float s);
void display();
private:
char* id;
char* name;
int age;
float score;
}; //以括号及分号结束,体现封装
说明:
(1) 类是抽象定义,因此在类中不允许对数据成员进行初始化。
(2) 类中的数据成员可以是任意数据类型,但不能用存储类型auto、register或extern进行说明。其他类的对象可以作为该类的成员(称为对象成员或子对象),但自身类的对象不能作为该类的成员,而自身类的对象指针或引用可以作为该类的成员。
需要说明的是,C的结构体只有变量没有函数,而C 的结构体不仅有数据成员,还可以有成员函数和访问权限,与类相似。C 类与结构体的区别是,在没有明确访问权限时,结构体的成员是公有的,而类的成员是私有的。在语义上通常用类来描述对象,而结构体仅用来描述结构化的数据。
3.1.2访问权限控制
从类的定义格式可知,类的封装和隐蔽功能是通过设置类成员的访问权限来控制的。设置访问权限可以隐蔽一些信息,同时又为外部提供访问接口,使用者通过外部接口实现其功能,而对其实现过程并不感兴趣。这样,使得设计者和使用者关心的内容相对独立。
访问权限有三种类型: public、private和protected。需要提供给使用者的类成员可设为public,称为公有成员,可以被程序中任何代码访问; 需要隐蔽的类成员可设为private,称为私有成员,只能被本类成员函数及友元访问,其他函数无法访问,成为一个外部无法访问的黑盒子; 而设为protected的成员称为保护成员,能被本类成员函数、派生类成员函数和友元访问,其他函数无法访问,相当于一个笼子,具有两面性,对它的派生类而言可以访问,而其他外部则是不可访问的。因此,每个类都应该定义公有成员函数,以便外部访问。
三种访问权限的成员与出现的先后顺序无关,并且允许多次出现,但是一个成员只能具有一种访问属性。在书写时,通常将公有成员放在前面,因为它们是外部访问时所要了解的,放在前面便于阅读。
例32示例访问权限控制。
//student.h
#ifndef STUDENT_H //条件编译
#define STUDENT_H
class Student
{
public: //公有成员函数,
— 没有更多了 —
以下为对购买帮助不大的评价