《VisualC++面向对象程序设计》PDF下载

  • 购买积分:14 如何计算积分?
  • 作  者:(美)J.Tackett Jr.,(美)Ed Mitchell著;吴洁明等译
  • 出 版 社:北京:清华大学出版社
  • 出版年份:1994
  • ISBN:7302016917
  • 页数:406 页
图书介绍:暂缺《VisualC++面向对象程序设计》简介

目录 1

引言 1

0.1 本书对象 1

0.2 关于C++ 1

第1章 C++程序设计基础 1

1.1 使用Microsoft Windows 1

1.1.1 定义一个通用窗口 1

1.1.2 定义一个对话框 1

0.3 如何使用本书 2

0.4 想学C++必须编写C++程序 3

0.5 本书使用的一些约定 4

0.6 关于示范程序 4

1.2 安装Visual C++ 4

1.3.1 使用Visual工作平台 5

1.3 使用Visual C++ 5

1.3.2 Visual工作平台的工具栏(toolbar) 7

1.3.3 Visual工作平台的帮助系统 8

1.3.3.1 搜索一个帮助主题(topic) 9

1.3.3.2 复制WinHelp信息 9

1.3.4 退出Visual工作平台 9

1.4 Visual工作平台编辑器的用法 9

1.4.1 操纵编辑器 10

1.4.2 选择文本和实施块操作 11

1.4.3 打开已存在的文件 12

1.5 建立第一个C++程序 13

1.5.1 建立一个项目文件 14

1.5.2 编译用户程序 15

1.5.3 运行用户程序 16

1.5.4 QuickWin库 16

1.6 一个C++示范程序 17

1.6.1 cout和cin流 18

1.6.2 编译和运行用户程序 20

1.6.3 选择内存模式 21

1.6.4 编译、链接和语法方面的错误 22

1.7 C++程序的组成部分 23

1.7.1 注解 23

1.7.2 C++输入和输出 23

1.7.3 C++函数 23

1.7.4 变量 23

1.7.5 符号常量 24

1.7.6 表达式 26

1.7.7 语句 27

1.7.7.1 复合语句 28

1.7.7.2 for循环语句 28

1.7.8 函数 30

1.8 本章小结 31

1.9 复习题 32

1.10 练习题 33

第2章 C++的数据类型和表达式 34

2.1 标识符 34

2.2 基本数据类型 35

2.2.1 整型 35

2.2.2 长整数型 36

2.2.3 字符型 37

2.2.4 字符型变量的计算 38

2.2.5 浮点类型 39

2.2.5.1 浮点常量 39

2.2.5.2 各种类型占内存的比较 39

2.3 变量的作用域 40

2.4.1 使用const 44

2.4 定义符号常量 44

2.4.2 使用#define 45

2.5 表达式和C++操作符 47

2.5.1 算术操作符 47

2.5.2 赋值操作符 49

2.5.3 关系操作符(Relational Operators) 50

2.5.4 逻辑操作符(Logical Operators) 52

2.5.5 位操作符 52

2.5.5.1 使用<<和>>进行左移位和右移位 53

2.5.5.2 测试单独的位 54

2.5.5.3 设置位 55

2.5.5.4 异或操作符 55

2.5.6 其他的赋值操作符 56

2.5.6.1 条件表达式操作符 56

2.5.6.2 逗号操作符 57

2.6 操作符的优先级 58

2.7 类型转换 58

2.8 枚举类型和枚举常量 59

2.8.1 使用enum建立枚举类型 60

2.8.2 用枚举类型来说明标志变量 61

2.9 本章小结 62

2.10 复习题 63

2.11 练习题 65

第3章 C++高级数据类型 66

3.1 C++聚合数据类型 66

3.2 数组 66

3.2.1 说明数组 67

3.2.2 初始化数组 68

3.2.3 字符数组和字符串 68

3.2.4 使用数组 70

3.2.5 使用字符型数组的一个例子 71

3.2.6 多维数组 73

3.3 结构 77

3.3.1 在赋值语句中使用结构 79

3.3.2 结构的初始化 79

3.3.3 结构数组 80

3.3.4 结构中的结构 83

3.3.5 位域 84

3.4 typedef的用途 85

3.5 联合 86

3.6 对象简介 88

3.7 本章小结 93

3.8 复习题 94

3.9 练习题 95

4.1.1 if语句 96

第4章 选择语句和循环语句 96

4.1 判断和选择语句 96

4.1.2 if-else 语句 98

4.1.3 if-else if 语句 98

4.1.4 switch 语句 99

4.1.4.1 多个情形 101

4.1.5 break语句 101

4.2 循环语句 101

4.2.1 for循环语句 102

4.2.1.1 在for循环内定义控制变量 103

4.2.1.2 使用字符型循环控制变量 103

4.2.1.3 使用复杂的增量表达式 104

4.2.1.4 省略for循环语句的某个部分 104

4.2.1.5 使用for循环的两个例子 104

4.2.2 break语句作为循环出口 106

4.2.3 continue语句 107

4.2.4 while循环语句 108

4.2.5 do-while循环语句 110

4.3 优化循环 111

4.4 使用goto语句和语句标号 112

4.5 本章小结 113

4.6 复习题 115

4.7 练习题 115

第5章 指针 117

5.1 理解指针 117

5.2 使用指针 118

5.2.1 使用NULL指针 118

5.2.2 使用指针指向数组 118

5.2.3 对指针进行算术运算 119

5.2.4 捷径 120

5.2.5 使用指针来加速数组访问速度 121

5.2.6 指针的运算 122

5.2.7 把一个指针赋给另一个指针 122

5.3 动态内存分配 123

5.3.1 堆 123

5.3.2 操作符new 124

5.3.3 操作符delete 125

5.3.4 使用new和delete的例子 125

5.3.5 用new建立多维数组 127

5.3.6 内存耗尽 127

5.3.7 动态内存空间的初始化 127

5.3.8 指针问题 127

5.3.9.1 方法1:只使用指针 128

5.3.9.2 方法2:使用指针和位移量 128

5.3.9 指针和数组一起使用 128

5.3.9.3 方法3:使用指针作为数组 129

5.3.9.4 上述三种方法的小结 130

5.3.10 使用指针指向数组的程序 130

5.3.11 指针数组 131

5.4 指针和结构 135

5.4.1 把指针放在struct定义中 135

5.4.2 使用自访问结构 136

5.4.3 实现链表 140

5.5 Near,Far和Huge指针 144

5.6 本章小结 146

5.7 复习题 147

5.8 练习题 148

6.1 使用库函数 149

第6章 函数和宏 149

6.1.1 使用特殊的库函数 150

6.1.2 使用字符串函数 153

6.1.2.1 使用strcat() 154

6.1.2.2 使用strcmp() 154

6.1.2.3 使用strstr() 155

6.1.2.4 使用memset() 156

6.2 用户自定义函数 157

6.2.1 函数的结果类型 158

6.2.1.2 使用void返回类型 159

6.2.2 函数的参数 159

6.2.2.1 在参数中使用void 159

6.2.2.2 定义参数变量 159

6.2.2.3 使用传值参数 160

6.2.2.4 使用引用参数 161

6.2.2.5 建立参数的缺省值 161

6.2.2.6 参数类型检查 162

6.2.2.8 传值的过程 163

6.2.2.7 理解参数传递 163

6.2.2.9 传引用的过程 164

6.2.2.10 使用指针作参数变量 165

6.2.2.11 使用数组作为参数 167

6.2.2.12 对数组类型使用引用操作符 168

6.2.2.13 使用指针传递字符串 168

6.2.2.14 使用结构作为参数 168

6.2.2.15 传递结构数组 170

6.2.2.16 使用参数修饰符const 171

6.2.2.17 在参数说明中使用省略号 172

6.3 在函数内部定义变量 172

6.3.2 static变量 173

6.3.3 寄存器变量 173

6.3.1 auto变量 173

6.4 函数定义与函数实现相分离 174

6.5 为什么使用函数原型 175

6.6 一个完整的样本程序 176

6.7 重载函数 181

6.8 函数模板 182

6.9 类似函数的宏 183

6.9.1 #undef指令 186

6.9.2 使用宏的一些问题 186

6.10 本章小结 187

6.11 复习题 188

6.12 练习题 189

第7章 项目 190

7.1 把程序分解成多个源文件 190

7.1.1 分解用户程序 190

7.1.2 建立源程序模块 191

7.1.3 建立头文件 193

7.1.4 建立一个主文件 194

7.2 使用Visual工作平台建立项目 196

7.2.1 向项目加入文件 197

7.2.1.1 编辑项目生成文件中的文件 197

7.2.1.2 编辑项目生成文件 198

7.2.2 使用RebuildAll菜单选择项 198

7.2.3 使用Build菜单选择项 198

7.2.4 使用Compile菜单选择项 199

7.2.5 使用工具栏按钮 199

7.2.6 处理相关的一些问题 199

7.2.7 使用DOS命令行 199

7.3.1 定义标识符号 200

7.3.2 使用#ifdef和#ifndef 200

7.3 条件编译控制指令 200

7.3.3 使用条件编译避免符号多次说明 201

7.3.4 使用#if,#elif,#else和#endif 202

7.3.5 使用defined()操作符 203

7.4 变量的定义域 203

7.4.1 函数域 203

7.4.2 块域 204

7.4.3 文件域 204

7.4.4 函数原型域 204

7.5 通过源文件访问变量及函数 204

7.5.1 内部链接 205

7.5.2 外部链接 205

7.5.2.1 使用关键字extern 205

7.5.2.2 用static关键字来限制链接 206

7.6.2 80x86 CPU的寄存器 207

7.6.1 80x86内存结构 207

7.6 内存模式 207

7.6.2.1 内存寻址 208

7.6.2.2 near和far内存引用 209

7.6.3 选择内存模式 210

7.6.3.1 内存模式的限制 211

7.6.3.2 内存模式的选择 211

7.6.3.3 内存模式的未来 212

7.7 本章小结 212

7.8 复习题 213

7.9 练习题 213

第8章 类 215

8.1 使用struct实现对象 215

8.2 介绍C++的class关键字 218

8.3 外联和内联函数 220

8.4 构造函数 221

8.4.1 使用构造函数 222

8.4.2 具有多构造函数的类 222

8.4.3 拷贝构造函数 222

8.4.4 缺省构造函数 223

8.5 析构函数 223

8.6 对象指针 224

8.6.1 使用指针的第二个例子 226

8.6.2 释放对象指针 227

8.7 对象数组 227

8.8 对象作为函数的参数 228

8.9 类的静态数据成员 228

8.10 实现链表类 232

8.11 *this指针 233

8.12 友元 235

8.13 重载操作符函数 237

8.13.1 重载单目和双目操作符 243

8.13.2 用友元实现重载操作符 244

8.13.3 用重载操作符实现定点运算 245

8.14 本章小结 248

8.15 复习题 248

8.16 练习题 249

第9章 继承性 250

9.1 如何实现继承性 250

9.1.1 protected关键字 254

9.1.2 派生类和访问区分符 255

9.1.3 调用基类的构造函数 256

9.1.4 sprintf()函数 256

9.1.5 继承的成员数据 256

9.1.6 类和类型兼容性 260

9.2 如何实现多重继承性 261

9.3 本章小结 264

9.4 复习题 265

9.5 练习题 265

第10章 虚拟函数与多态性 266

10.1 Overridden函数的问题 266

10.2 为什么需要用虚拟函数 269

10.3 虚拟函数如何工作 272

10.4 选择静态的还是选择虚拟的 273

10.5 多态性 274

10.5.1 设计一个支持多态性的类 274

10.5.2 用虚拟函数实现多态性 278

10.5.3 在图形应用程序中使用多态性函数 284

10.5.4 用多态性函数实现一个列表框 284

10.5.6 从抽象类派生出一个子孙类 287

10.5.5 创建一个函数 287

10.6 对象库 288

10.7 设计面向对象的程序 289

10.8 本章小结 290

10.9 复习题 291

10.10 练习题 291

第11章 C++的输入和输出 292

11.1 屏幕输出 292

11.2 从键盘输入 293

11.2.1 文本和字符输入 294

11.2.1.1 get(char ) 294

11.2.1.2 get() 294

11.2.1.3 getline(char*buffer,int,char=′\n′) 294

11.2.1.4 eatwhite() 294

11.3.1.2 endl 295

11.3.1.1 dec 295

11.3.1.3 ends 295

11.3 格式化输出 295

11.3.1 使用操作器 295

11.2.1.5 ignore(int n=1,int delim=EOF) 295

11.3.1.4 flush 296

11.3.1.5 hex 296

11.3.1.6 oct 296

11.3.1.7 ws 296

11.3.1.8 setbase(int n) 296

11.3.1.9 setfill(int c) 296

11.3.1.10 setprecision(int n) 297

11.3.1.11 setw(int n) 297

11.3.2 设置流的格式化标志 297

11.3.2.1 setiosflags()和resetiosflags() 297

11.3.3.3 width(int)和width() 298

11.3.3.2 precision(int)和precision() 298

11.3.2.2 setf()和unsetf() 298

11.3.3.1 fill(char)和fill() 298

11.3.3 格式输出函数 298

11.4 处理流错误 299

11.4.1 检测流错误 299

11.4.2 测试文件结束状态 299

11.4.3 检测具体的错误状态 299

11.4.4 清除错误状态 300

11.5 用户自定义类的输入和输出 300

11.6 格式化字符串流 303

11.6.1 使用ostrstream 303

11.6.2 使用istrstream 305

11.7 磁盘文件的输入输出 306

11.7.1 向文件写文本输出 306

11.7.2 从文件中读文本输入 307

11.7.2.1 get()和put() 308

11.7.2.2 文件拷贝 310

11.7.3 使用二进制数据文件 311

11.7.4 随机访问数据文件 313

11.8 打印 315

11.9 本章小结 315

11.10 复习题 316

11.11 练习题 317

第12章 Visual C++程序的调试 318

12.1 程序中的三种错误 318

12.1.1 语法错误 318

12.1.2 运行错误 319

12.1.2.1 测试函数返回值 319

12.1.3 逻辑错误 320

12.1.2.2 异常处理 320

12.2 在交付用户之前查找错误 321

12.2.1 使用桌面检查和代码预审 322

12.2.2 使用代码复审 323

12.2.3 防止未来的问题 323

12.3 为调试程序做准备 325

12.3.1 使用DebugBuilds及ReleaseBuilds 325

12.3.2 创建DebugBuild 325

12.4 使用集成调试工具 326

12.4.1 控制程序执行 327

12.4.2 设置断点 327

12.4.3 检查和修改变量 327

12.4.3.1 用QuiCkWatch对话框查看变量 328

12.4.3.2 修改变量 328

12.4.4.2 设置调试工具选项 329

12.4.4.1 使用Call Stack对话框 329

12.4.4 调试工具的其他作用 329

12.5 使用调试窗口 331

12.5.1 Watch窗口 331

12.5.1.1 查看结构、类和表达式 331

12.5.1.2 使用Watch窗口修改数值 332

12.5.2 Local窗口 332

12.5.3 Registers窗口 333

12.5.4 输出窗口 333

12.6 本章小结 333

12.7 复习题 333

第13章 用QuickWin实现图形程序设计 335

13.1 使用Visual C++图形 335

13.2 使用QuickWin图形库 338

13.2.3.1 File菜单 339

13.2.3 QuickWin用户界面 339

13.2.2 QuickWin的视频硬件配置 339

13.2.1 QuickWin库的窗口 339

13.2.3.2 Edit菜单 340

13.2.3.3 View菜单 340

13.2.3.4 State菜单 340

13.2.3.5 Windows菜单 340

13.2.3.6 Help菜单 340

13.3 理解图形坐标系统 340

13.4 画圆 341

13.5 显示文本 342

13.6 选择字体和字符大小 342

13.7 发现图形错误 343

13.7.1 _grstatus()错误报告函数 343

13.8 使用视口 344

13.7.2 QuickWin错误报告 344

13.9 使用当前指示器(Current Pointer) 345

13.10 选择颜色 346

13.10.1 从调色板上选择颜色 347

13.10.1.1 _remappalette()函数 347

13.10.2 为对象选择填充颜色和填充图案 347

13.10.3 使用和填充多边形 352

13.11 用QuickWin应用程序画图表 353

13.12 本章小结 362

13.13 复习题 362

13.14 练习题 363

第14章 MFC通用类与集合类 364

14.1 MFC简介 364

14.2 使用MFC类库之前对QuickWin应用程序的准备 364

14.2.1 在QuickWin应用程序中包含头文件AFX.H 364

14.2.2 使用MFC库的QuickWin应用程序的项目选项 365

14.3 类CString 366

14.4 类CTime 367

14.5 类CFile 369

14.5.1 文本文件与二进制文件 370

14.5.2 使用类CStdioFile 371

14.6 集合类 372

14.6.1 理解集合类 372

14.6.2 了解有关集合类的知识 373

14.7 集合类的使用 374

14.8 数组集合类 374

14.8.1 把一个数据项插入数组集合 375

14.8.2 数组循环 375

14.9 链表集合类 375

14.9.1 向链表集合插入条目 375

14.9.4 查询链表 378

14.9.2 链表循环 378

14.9.3 删除链表 378

14.10 映射集合类 379

14.10.1 将关键字与映射集合中的值联系起来 380

14.10.2 查找映射的定义 380

14.11 本章小结 380

14.12 复习题 381

14.13 练习题 381

第15章 用Visual C++进行Windows程序设计…………………………………(382). 382

15.1 用AppWizard编写自己的第一个Windows程序 382

15.1.1 使用AppWizard 382

15.1.1.1 多文档界面 383

15.1.1.7 外部makefile 384

15.1.1.6 内存模式 384

15.1.1.5 上下文关联帮助 384

15.1.1.4 定制的VBX控制 384

15.1.1.2 初始化工具栏 384

15.1.1.3 打印及打印预审 384

15.1.1.8 产生源注释 385

15.1.1.9 OLE和ODBC 385

15.1.2 AppWizard定义的类 385

15.2 生成应用程序 386

15.3 运行应用程序 386

15.4 一个通用的MFC应用程序 386

15.4.1 WinMain()函数 387

15.4.2 应用程序窗口 387

15.5 FIRSTWIN——第一个应用程序 388

15.7 MFC文档/视图结构 391

15.7.1 建立主框架窗口 391

15.6 初始化步骤 391

15.7.2 显示主框架窗口 392

15.8 信息循环 392

15.9 处理命令信息 393

15.10 使用ClassWizard 394

15.10.1 用ClassWizard工具增加一个消息映射条目 395

15.10.2 用ClassWizard编辑消息映射函数 395

15.11 资源 395

15.12 MFC类层次 400

15.13 FIRSTWIN应用程序——第二部分 400

15.13.1 重温文档 400

15.13.2 重温MFC视图 403

15.14 本章小结 405

15.15 复习题 405

15.16 练习题 406