自学C++半月通
施大龙
7507708756
学苑出版社 / 0000-00-00
平装 / 16开 / 300页 / 0字
¥29.00
(1家书店)
"自学C++半月通"的详细介绍……
内 容 简 介
本书主要是针对利用C十十进行程序设计的人编写的,全面系统地介绍了C十十。介
绍C和C十十语言的基础知识,包括操作符和表达式、说明、控制语句、函数、指针、继承、
派生、重载、构造函数、析构函数、C十十流和对象控制。本书适合自学C十十的计算机爱好
者阅读。
哪里可以买到"自学C++半月通"?
从 1 家优秀的网上书店中选购"自学C++半月通"
※ 如果您是第一次来到好图书选购图书,请点此查看“购书指南”。
※ 发现价格错误了?书店有售而好图书却没有显示?立刻点此给好图书改错。
※ 图书价格仅供参考,实际售价及是否有库存以各网站实际标示为准。
※ 若售价差别过大,可能因不同规格或者版本引起,请自行甄别。
"自学C++半月通"的图书目录……
目录
编者前言
第一天 C十十历史和特征
1.1C十十的起源
1.2什么是面向对象程序设计
1.2.1对象
1.2.2多态性
1.2.3继承
1.3C十十的编程风格
1.4C十十的类
1.5函数重载
1.6操作符重载
1.7继承
1.8构造函数与析构函数
1.9C十十的关键字
1.10C十十程序的一般形式
第二天 类与对象
2.1类
2.2结构与类
2.3联合与类
2.4友元函数
2.5嵌入函数
2.6在类中定义嵌入函数
2.7参数化构造函数
2.8静态类成员
2.8.1静态数据成员
2.8.2静态成员函数
2.9构造函数与析构函数的执行顺序
2.10嵌套类
2.11作用域限定操作符
2.12局部类
2.13向函数传递对象
2.14作为返回值的对象
2.15对象赋值
第三天 数组、指针与引用
3.1对象数组
3.2对象指针
3.3this型指针
3.4指向派生类型的指针
3.5指向类成员的指针
3.6引用
3.6.1引用参数
3.6.2传递引用对象
3.6.3返回引用
3.6.4独立引用
3.6.5引用的一些限制
3.7风格带来的问题
3.8C十十的动态分配操作符
3.8.1动态分配对象
第四天 函数与操作符的重载
4.1函数的重载
4.1.1函数的重载与多义
4.2过时的重载方式
4.3构造函数的重载
4.4寻找重载函数的地址
4.5操作符的重载
4.5.1建立一个成员0perator函数
4.6使用友元函数重载操作符
4.6.1使用友元函数重载十十和--
4.6.2使用友操作符函数增加灵活性
4.7new和delete的重载
4.8一些特定的操作符的重载
4.8.1重载[]
4.8.2重载()
4.8.3重载->
4.9逗号操作符的重载
第五天 继承
5.1基类的访问控制
5.1.1继承和保护成员
5.2多个基类的继承
5.3构造函数、析构函数与继承
5.3.1何时执行构造函数和析构函数
5.3.2向基类的构造函数传递参数
5.4授予被访问权
5.5虚拟基类
第六天 虚函数与多态性
6.1虚函数
6.1.1虚拟特性的继承
6.1.2虚函数的层次性
6.2纯虚函数
6.2.1抽象类
6.3使用虚函数
6.4先期与迟后联编
第七天 C十十I/O系统基础
7.1C十十的流
7.2基本流类
7.2.1C十十提前定义的流
7.3格式化I/O
7.3.1使用ios的成员格式化I/O
7.3.2设置格式标志
7.3.3清除格式标志
7.3.4函数setf()的一个重载形式
7.3.5检测格式标志
7.3.6设置所有的标志
7.3.7使用函数width()、precision()和fil1()
7.3.8使用操纵符格式化I/O
7.4重载<<和>>
7.4.1创建自己的插入符
7.4.2创建自己的提取符
7.5建立自己的操纵符函数
7.5.1创建无参数操纵符
7.5.2创建带参数的操纵符
7.6关于老的流类库
第八天 C十十文件I/O
8.1头文件fstream.h和文件类
8.2文件的打开与关闭
8.3读写字符文件
8.4二进制I/O
8.4.1put()和get()
8.4.2read()和write()
8.5get()函数另外的形式
8.6getline()
8.7检测文件结束符EOF
8.8ignore()函数
8.9peek()和putback()
8.10flush()
8.11随机访问
8.12I/O状态
8.13定制的I/O和文件
第九天 基于数组的I/O
9.1基于数组的类
9.2创建一个基于数组的输出流
9.3使用一个数组作为输入
9.4使用二进制的I/O
9.5基于数组的输入/输出流
9.6数组内的随机访问
9.7动态数组的使用
9.8操纵符与基于数组的I/O
9.9定制的提取符和插入符
9.10基于数组的格式化的使用
第十天 C++的现在和将来
10.1缺省的函数参数
10.1.1正确地使用缺省参数
10.2创建转换函数
10.3拷贝构造函数
10.4动态初始化
10.5const和volatile成员函数
10.6使用关键字asm
10.7联接指明
10.8过时的重载
10.9C和C十+的差别
10.10C十十的发展方向
第十一天 字符串类
11.1定义字符串类型
11.2字符串类
11.3构造函数和析构函数
11.4字符串的I/O
11.5赋值函数
11.6字符串连接
11.7子串的减法
11.8关系操作符
11.9混合的字符串函数
11.10完整的字符串类
11.11字符串的使用
第十二天 弹出式窗口类
12.1弹出式窗口
12.2建立一些视频支持函数
12.2.1PC的显示系统
12.2.2访问BIOS
12.2.3确定视频内存的地址
12.2.4写入显示内存
12.2.5设置光标的位置
12.3窗口类
12.4显示和删除一个窗口
12.5窗口I/O
12.6完整的窗口系统
12.7改进
第十三天 链表类
13.1双链表类
13.1.1store()函数
13.1.2remove()函数
13.1.3显示链表
13.1.4更改和查找链表中的一个对象
13.1.5完整的dblink类与样本程序
13.2创建一个通用的双链表基类
13.2.1双链表基类
13.2.2定义一个特定的双链表类
13.3其他的方法
第十四天 一些常用的类
14.1复数类
14.2BCD码类
第十五天 总复习
15.1引用
15.1.1引用参数
15.2作用域存取操作符
15.3new与delete操作符
15.3.1关于数组的new操作符
15.3.2∷operatornew
15.3.3带有new操作符的初始值
15.4类
15.4.1类名
15.4.2类类型
15.4.3类名作用域
15.4.4类对象
15.4.5类成员表
15.4.6成员函数
15.4.7关键字this
15.4.8内部函数
15.4.9静态成员
15.4.10成员作用域
15.4.11基类与派生类存取
15.5虚基类
15.6类的友元
15.7构造函数(constructors)与析构函数(destructors)简述
15.8构造函数
15.8.1缺省构造函数
15.8.2拷贝构造函数
15.8.3构造函数的重载
15.8.4构造函数的调用次序
15.8.5类的初始化
15.9析构函数
15.9.1析构函数的调用
15.9.2atexit、#pragmaexit与析构函数
15.9.3exit与析构函数
15.9.4abort与析构函数
15.9.5虚析构函数
15.10重载操作符
15.11操作符函数
15.11.1重载操作符和继承
15.11.2重载new和delete
15.11.3重载单目操作符
15.11.4重载赋值操作符=
15.11.5重载函数调用操作符()
15.11.6重载下标操作符[]
15.11.7重载类成员存取操作符->
15.12虚函数
15.13抽象类
15.14C十十作用域
15.14.1类作用域
15.14.2隐藏
15.14.3C十十作用域规则小结
"自学C++半月通"的书摘……
第一天 C十+历史和特征
今天将概括地介绍C十十的一些关键概念。C十十作为面向对象程序设计语言,与其面
向对象的特征是有密切关系的。在许多地方讨论C十十的面向对象一个的特征时,由于这些
特征的相互关联,所以还需要其他特征的知识。为讨论这些问题,本章概述了大部分C十十
中重要的特征和概念。以后的几天将详尽地学习C十十的这些特征。
1.1 C十十的起源
众所周知,C十十是C的扩充版。C十十对C的扩充首先是由新泽西州MurrayHill贝尔
实验室的Bjarne Stroustrup在1980年提出的,他称之为“含类的C”,后来到1983年更名为
C十十。
虽然C十十的前身C在世界上是一种人们非常喜欢并被广泛使用的专业编程语言,但
C程序的复杂性使C十十的出现成为必然。在C中如果一个程序代码达到25000至100000
行,那它将变的过于复杂使人很难从整体上把握它。C十十解决了这种困难,C十十的实质是
使程序员易于理解和管理更大更复杂的程序。
Strou strup对C作的大部分扩充是支持面向对象程序设计的,有时被看作面向对象程
序设计(详见下节对面向对象程序设计的简要解释),Stroustrup声称C十十的一部分面向
对象的特征来自于另一种面向对象程序设计语言Simula67。因此,C十十成为两种强有力的
程序设计方法的结合体。
因为C十十的可取之处,使它度过了两次大的波折,一次在1985年,另一次在1989年。
当前版本为2.1,即是本书讨论的这一版。
在C十十提出时,Strou strup就意识到保持C的优点的重要性,包括C的效率以及C的
灵活性和程序员而不是语言作为主管的潜在道理,同时提供对面向对象程序设计的支持。
他的目标得到了实现,C十十使程序员依然能自由灵活地控制C,并充分发挥对象的作用。C
十十的面向对象的特征,用strous trup的话来说,“使程序更清晰、便于扩展,在不降低效率
下使维护程序更方便。”
尽管C++初始设计目标是为更好的管理大型程序,但这并没有限制其他方面的用
处。实际上,C十十的面向对象的特性使C十十可以有效地应用于任何程序设计的任务,C十
十用于设计诸如编辑器、数据库、个人文件系统及通讯程序并非希罕的事情。而且,由于C十
+拥有C的效率,已有许多高效系统软件由C十十设计。
1.2 什么是面向对象程序设计
面向对象程序设计(OOP)是一种完成程序设计工作的新方法。自从计算机发明以来,
程序设计方法发生了戏剧性的变化,这些变化主要是为了适应处理日益增长的程序的复杂
性。比如,在计算机刚出现时,程序设计是通过利用计算机前控制板输入二进制机器指令来
完成。当程序只有几百条指令时,这种方法可以胜任。随着程序的增长出现了汇编语言,使
程序员可以用符号化的计算机指令处理更大更复杂的程序。随着程序的进一步的增长,出现
了高级语言,它为程序员处理复杂程序提供了更好的方法。第一个广泛流行的高级语言当属
FORTRAN,虽然FORTRAN的出现是富于开创性的一步,但用它很难开发出清晰易懂的
程序。
1960以后出现了结构化程序设计方法,这就是诸如C和PASCAL等语言支持的方法。
使用结构化程序设计语言使编写中等复杂性的程序相当容易。然而,当任务达到一定大小
时。使用结构化程序设计方法也会变得失去控制;它的复杂度超过程序员所能管理的程度和
结构化方法所能胜任的极限。
试想:程序设计发展的每一个里程碑,都有新一方法被采用去处理越来越复杂的程序,
前进的每一步,新的方法都吸取了旧方法的精华并继续向前发展。现在,许多工程都接近或
正在结构化编程不起作用的节点上为解决这个问题,人们发明了面向对象程序设计的方法。
面向对象程序设计方法吸取了结构化程序设计方法的先进思想并结合了许多有效的新
概念,使程序员用一种新途径完成程序的设计。总体上来说,在使用面向对象的风格进行程
序设计时,程序员将问题分解为相互联系部分的子组,每个部分包括同其它子组联系的数据
和代码,而且可以将这些子组组织成有层次的结构。最后,可以将这些子组转换成自约束的
单元,称为对象。
所有面向对象程序设计语言都含有三种概念:对象、多态性、继承。
1.2.1 对象
面向对象程序设计语言最重要的特征是对象。简单地说,一个对象是一个逻辑实体,包
含数据及处理数据的代码。在对象体中,些数据和代码是属于对象私有的;不允许对象外
的实体访问。因此,对象提供了一种标识表示对其他实体的保护等级,使其不能偶然修改或
不正确的使用对象中的私有部分,这种联系数据和代码的方法称为封装。
对于所有需求,一个对象是用户定义类型的一个变量。开始对于将这个把数据和代码联
结在一起的对象看做是一个变量,好像很奇怪,然而在面向对象程序设计中的确如此。当程
序员定义了一个对象时,无疑他创建了一个新的数据类型。
1.2.2 多态性
面向对象程序设计的语言支持多态性,多态性的特性可以用“一个界面,多个方法”来描
述。简单地说就是一个名称可以完成几个相关但略有不同功能。实质上,多态性允许一个界
面可用来进行一类行为。具体的行为由其所包括的数据类型来确定,例如,有一个程序定义
了三种类型的堆栈,一个是处理整数值的,一个是处理浮点数的,一个是处理长整数值的。因
为多态性,你可以为PUSH()和POP()创立三种类型的函数,一种类型的数据一种函数,
通过对调用PUSH()和P()P()的数据类型的识别,编译器可以选择正确的路径。整体的概
念(界面)的意思是将数据弹出和压人堆栈,函数定义的具体方法是为了处理不同的数据类
型。