VisualC抖是基于Windows操作系统的编程工具。它将Windows的编程复杂性封装起来,使编程者可以比较轻松地进行Windows应用程序的设计。
本书共分为10章。第1章介绍了C什的词法、语法规则和最简单的C抖程序以及如何用Visual C抖来进行开发。第2章介绍了C++语言的基础(数据类型、程序流程控制、运算符和表达式以及函数的格式和调用方式)。第3、4章介绍了类和对象的基本概念及特性,包括对象的创建和销毁的机制、友元函数、友元类、嵌套类、对象数组、指针和引用等。第5章讨论了类的派生和继承性,继承增强了软件的可扩充性,并为代码重用提供了强有力的手段。第6章介绍了函数重载和运算符重载。第7章讨论了虚函数和多态性。第8、9章介绍了模板和错误处理。第10章介绍C++系统的输出/输出流库,它使得程序员可以很容易的设计执行标准I/O和文件I/O的程序。书中所有的例子都在VisualC++6.0下编译运行通过。
本书适合于C抖语言的初学者和有一定编程经验的C++程序员。
第1章绪论
1.1C++语言的前身C语言
1.1.1C语言是中级语言
1.1.2C语言是结构化语言
1.1.3C语言的特点
1.1.4 C语言的缺陷
1.2C++语言的产生和发展
1.2.1带类的C
1.2.2从带类的C到C++
1.2.3C++2.0版
1.2.4 C++3.0版
1.2.5C++的标准化
1.2.6C抖大事年表
1.3面向对象程序设计
1.3.1面向过程的程序设计
1.3.2面向对象的程序设计
1.3.3对象和类
1.3A封装性
1.3.5继承性.
1.3.6多态性
1.4C++面向对象程序设计语言
1.4.1C什对面向对象程序设计
方法的支持
1.4.2C抖与C语言的关系
1.5C++程序的编辑、编译和运行
1.5.1编辑源代码
1.5.2程序编译
1.5.3程序运行
1.5.4程序调试
1.6C++的词法及词法规则
1.6.1C++的字符集
1.6.2单词及词法规则
1.7C++的程序结构
1.7.1C++语言的注释.
1.7.2预处理命令
1.7.3函数
1.7.4输入和输出
1.7.5C++程序的书写格式
1.8用VisualC++创建控制台应用程序
第2章C++语言基础
2.1基本数据类型
2.1.1C++的基本数据类型
2.1.2字符型
2.1.3整型
2.1.4浮点型
2.1.5布尔型
2.1.6空值型
2.2常量
2.2.1常量的定义
2.2.2整型常量
2.2.3浮点型常量
2.2.3字符常量
2.2.4字符串常量
2.3变量
2.3.1变量的定义
2.3.2变量的值
2.4存储类
2.4.1自动变量
2.4.2寄存器变量
2.4.3静态变量
2.4.4外部变量
2.5数组类型
2.5.1一维数组
2.5.2多维数组
2.5.3数组的初始化
2.5.4字符数组
2.6指针和引用
2.6.1指针
2.6.2引用
2.7构造数据类型
2.7.1结构
2.7.2联合
2.7.3枚举类型
2.7.4typedef
2.8运算符和表达式
2.8.1运算符
2.8.2表达式
2.8.3数据类型转换
2.9程序控制结构
2.9.1表达式语句和块语句
2.9.2选择语句
2.9.3循环语句
2.9.4转移语句
2.10函数定义和调用
2.10.1函数的定义
2.10.2函数原型
2.10.3函数调用
2.10.4函数的参数
2.10.5C++语言中函数参数的缺省值
2.10.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构造函数与运算符new
3.3.4拷贝初始化构造函数
3.4.析构函数
3.4.1定义析构函数
3.4.2缺省析构函数.
3.4.3析构函数与运算符delete
3.5内联函数
3.5.1内联函数的定义
3.5.2内联成员函数
3.5.3内联函数与宏的比较
3.6静态成员
3.6.1静态数据成员
3.6.2静态成员函数
3.6.3静态成员实例
3.7友元函数和友元类
3.7.1友元函数
3.7.2友元类
3.8类的作用域.
3.9嵌套类
第4章对象运算
4.1对象数组
4.1.1对象数组的定义
4.1.2用成员函数给对象数组赋值
4.1.3用构造函数给对象数组赋值
4.2对象指针
4.2.1指向类类型对象的指针
4.2.2指向类成员的指针
4.2.3对象指针作函数的参数
4.3指向数组的指针和指针数组
4.3.1指向一般数组的指针
4.3.2指向对象数组的指针
4.3.3-般指针数组
4.3.4对象指针数组
44引用
4.4.1引用的概念
4.4.2引用的地址.
4.4.3引用作函数参数
4.4.4用引用作函数的返回值
4.5this指针
第5章派生和继承
5.1继承的概念
5.2基类和派生类
5.2.1派生类的定义格式
5.2.2基类与派生类的关系
5.3三种继承方式
5.3.1继承方式概述
5.3.2公有继承方式
5.3.3私有继承方式
5.3.4继承与保护成员
5.3.5保护继承方式
5.4单继承
5.4.1单继承的两个实例
5.4.2构造函数和析构函数的执行
5.4.3向基类的构造函数传递参数
5.4.4子类型化和类型适应
5.5多继承
5.5.1多继承的概念
5.5.2多继承下对象的创建和销毁
5.5.3多继承的构造函数
5.6多继承的二义性
5.6.1多继承的二义性问题
5.6.2用作用域限定符解决二义性问题
5.7虚函数
5.7.1用虚基类解决二义性的问题
5.7.2虚基类的初始化
5.7.3虚基类的构造函数
第6章函数和运算符重载
6.1函数重载
6.1.1参数类型不同的重载函数
6.1.2参数个数不同的重载函数
6.1.3重载函数调用的机制
6.1.4函数重载的二义性
6.2构造函数的重载
6.2.1构造函数的重载
6.2.2指向重载函数的指针
6.3成员函数的重载、覆盖和隐藏
6.3.1重载与覆盖
6.3.2隐藏规则
6.4运算符重载
6.4.1重载为类成员函数
6.4.2重载为类的友元函数
6.4.3运算符重载的几个问题
6.5重载增(减)量运算符
6.5.1增(减)量运算符的区别
6.5.2增(减)量运算符重载为成员函数-
6.5.3增(减)量运算符重载为友元函数-
6.6重载new牙口dclete
6.6.1简单重载new和delete
6.6.2数组重载new和delete运算符
6.7其他运算符重载
6.7.1重载下标运算符(1
6.7.2函数调用运算符的重载
6.7.3成员选择运算符的重载
第7章虚函数与多态,睦
7.1静态联编和动态联编
7.1.1基类指针和派生类指针
7.1.2静态联编
7.1.3动态联编
7.2虚函数
7.2.1虚函数的定义
7.2.2虚函数的工作机制
7.2.3虚函数的分级性
7.2.4虚函数的访问权限
7.3成员函数对虚函数的调用
7.3,1在普通成员函数中调用虚函数
7.3.2在构造函数中调用虚函数
7.4多重继承与虚函数
7.5虚析构函数
7.6纯虚函数与抽象类
7.6.1纯虚函数
7.6.2抽象类
第8章模板
8.1模板的引入
8.2函数模板
8.2.1函数模板的声明
8.2.2多个通用数据类型的函数模板
8.2.3模板函数与重载函数
8.2.4模板函数的局限性
8.3类模板
8.3.1类模板的定义
8.3.2多个通用数据类型的类模板
8.4类模板的派生问题
8.4.1普通类作为基类
8.4.2类模板作为基类
第9章错误和异常处理
9.1错误与异常
9.2C++异常处理机制
9.3异常处理
9.3.1异常处理的过程
9.3.2terminate()函数
9.4多个异常
9.4.1捕获多个异常
9.4.2捕获未知异常
9.5异常的再次抛出
9.6异常的接口说明
9.6.1异常接口说明格式
9.6.2unexpected()函数
9.7资源分配异常
9.8异常的组织
9.8.1用枚举组织异常
9.8.2用派生类组织异常
9.8.3用虚函数组织异常
第10章输入和输出流
10.1输入/输出流简介
10.2C++标准FO:
10.2.1预定义的插入符
10.2.2预定义的提取操作符
10.2.3预定义I/0流对象
10.2.4C++的I/O流是类型安全的流
10.3格式化I/O
10.3.1输入输出格式控制
10.3.2函数setf()实现格式化输出
10.3.3函数flags()实现格式化输出
10.3.4函数width()、fill()和precision
10.3.5利用操作算子实现格式化I/0
10.4重载插入符和提取符
10.5文件的输入/输出
10.4.1文件的概念
10.4.2文件的打开和关闭
10.4.3文本文件的读写
10.4.4二进制文件的读写
10.4.5对文件的随机访问
10.6字符串流I/O
10.6.1ostrstream类流
10.6.2istrstream类流
10.6.3strstream类流
10.7流的错误处理
10.7.1状态字和状态函数
10.7.2清除/设置流的状态位
参考文献
21世纪挑战与机遇并存,没有足够的知识储备必将被时代所抛弃。中国汀教育产业竞争日趋激烈,用户需求凸显个性,行业发展更需要理性。未来五年IT行业将以每年18%的速度连续增长,将引发IT产业新的发展高潮。实现信息产业大国的目标,应该依赖教育,要圆信息产业强国的梦想,依然要寄托于教育,IT教育事业任重道远,其产业也正面临着机遇与挑战。
我国的计算机教学长久以来一直重原理、轻应用。高等院校的计算机教学机制和教材对计算机本身的认识都存在误区。要改革高校计算机教学,教材改革是重要方面,用计算机教材的改革促进基础教育的改革势在必行。
一本好书,是人生前进的阶梯一套好教材,就是教学成功的保证。为缓解计算机技术飞速发展与计算机教材滞后落伍的矛盾,我们通过调查多所院校的师生,并多次研讨,根据读者认识规律,开创出一种全新的方式,打破过去介绍原理理论推导举例说明的模式,增加实用操作性,通过上机实验与课上内容结合来增强可读性,用通俗易懂的语言和例子说明复杂的概念。
本套教材的特点,一是“精”,精选教学内容二是“新”,捕捉最新资讯三是“特”,配备电子课件,力争达到基础性、先进性、全面性、典型性和可操作性的最大统一。
为保证教材质量,我们同时聘请了一批学术水平较高的知名专家、教授作为本套教材的主审和编委,全套教材包括必修课教材二十多种,选修课教材和学习配套用书十余种,基本上涵盖了目前高等院校(含高等职业技术学院、高等专科学校、成人高等学校)计算机科学与技术专业所必修或选修的内容。各种教材编写时既注意到内容上的连贯性,又保证了教学上的相对独立性。
本套教材在内容的组织上,大胆汲取当今计算机领域最新技术,摒弃了传统教材中陈旧过时的内容。这些变化在各本教材中都得到了不同程度的体现。本套教材编写时既参照了教育部有关计算机科学与技术专业的教学要求,又参考了“程序员考试大纲”和“全国计算机水平等级考试大纲”的内容,因此既适合作为高等学校计算机科学与技术专业教材也可作为计算机等级考试学习用书。
考虑到各校教学特点和计算机设备条件,我们本着“学以致用”的理念,在本套教材编写中自始至终贯彻“由浅入深,理论联系实际”的原则,以阐明要义为主,辅之以必要的例题、习题和上机实习,能够使学生尽快领悟和掌握。
在本套教材编写过程中,作者们付出了艰辛的劳动,教材编委会的各位专家、教授进行了认真的审定和悉心的指导。书中参考、借鉴了国内外同类教材和专著,在此一并表示感谢。
我们希望更多的优秀教师参与到教材建设中来,真诚希望广大教师、学生与读者朋友在使用本丛书过程中提出宝贵意见和建议。
若有投稿或建议,请发至本丛书出版者电子邮件:textbook@bhp.com.cn
21世纪高等院校计算机教材编委会
C++是一种高效实用的计算机编程语言。它既可以用于面向过程的应用编程,也可以用于面向对象的系统开发,在计算机普及的现代社会得到了广泛的应用,成为了程序员首选的编程语言。
本书适合于C++语言的初学者和有一定编程经验的C++程序员。作者结合C++语言知识以及丰富的开发经验,通过大量的编程示例,力图使本书的读者通过学习,在掌握C++语言编程基本知识的同时深刻领会面向对象设计的设计思想和方法。
全书共分为10章。第1章回顾了C++语言的发展历史,介绍了C++的词法、语法规则和最简单的C++程序以及如何用VisualC++来进行开发。第2章介绍了C++语言的基础,包括数据类型、程序流程控制、运算符和表达式以及函数的格式和调用方式等内容。第3章讨论了类和对象的基本概念,介绍了对象的创建和销毁的机制、友元函数、友元类和嵌套类等内容。第4章进一步介绍了类和对象的一些特性,包括对象数组、指针和引用等概念。第5章讨论了类的派生和继承性,继承增强了软件的可扩充性,并为代码重用提供了强有力的手段。第6章介绍了函数重载和运算符重载。第7章讨论了虚函数和多态性,多态性使程序员在设计程序时可以对问题进行更好的抽象,以设计出重用性和维护性俱佳的程序。第8章和第9章介绍了模板和错误处理。第10章介绍C++系统的输出/输出流库,它使得程序员可以很容易的设计执行标准I/O和文件I/0的程序。本书每章都有较多的程序示例,希望读者可以通过这些实例更好的理解书中的内容。书中所有的例子都在VisualC++6.0下编译运行通过。
本书作者以极大的热诚和细致,阐述了C++编程基础知识的方方面面,避免出现生涩技术词汇和知识断层,目的就是为了使得每一个有志于程序开发的初学者,或者正在学习C++编程的程序员能够系统的,最大限度的领会和掌握C十+编程思想和工具。成为一个真正合格的C++编程高手,本书愿意是您的一本“开卷有益”的技术参考书!
在本书编写过程中,查阅了大量有关的中外文资料,现谨对这些书的作者提供的帮助表示最衷心的感谢。由于时间仓促,加之水平有限,对于书中所存在的错误和不足之处,敬请广大读者批评指正。