C++与面向对象的途径

副标题:无

作   者:张乃孝,裘宗燕著

分类号:

ISBN:9787040064186

微信扫一扫,移动浏览光盘

简介

  本书采用面向对象的思想组织数据结构的内容,运用C++语言作为讨论数据结构的工作语言,系统地介绍了串,向量,链表,栈,队列,树,二叉树,优先队列,散列表,集合,字典,图和文件等各种数据结构,是一本比较好地反映了当前计算机技术发展水平,又具有较强实用性的数据结构教材。///全书体系完整,概念清楚,内容充实,取材适当,面向实际应用。可以作为大学本科计算机专业或相关专业的“数据结构”课程教材,也可以作为大学本科或专科有关专业的面向对象程序设计课程或C++程序设计实践课程的教材和参考书。///作者在使用   

目录

鸣谢
目录
0.1我对大家的期望
0.2关于示例应用程序
前言
0.2.1用C语言写的程序
0.2.2MessageCrackerMacros(消息拆析宏)
0.2.3有关16位Windows编程的知识
0.2.4在Windows95下运行示例应用程序
0.2.5不相关代码
0.2.6相互独立的应用程序
0.2.7STRICT一致性
0.2.8错误检查
0.2.10测试平台及环境
0.2.9没有错误
0.2.11Unicode
0.3安装示例程序
0.3.1Windows95
0.3.2WindowsNT
1.1梦想:Win32API
第1章 WIN32API及支持它的平台
1.2Win32s
1.3WindowsNT
1.4Windows95
1.5现实:Win32API
第2章 进程
2.1核心对象
2.2编写第一个Win32应用程序
2.2.1进程的实例句柄
2.2.2进程的先前实例句柄
2.2.3进程的命令行
2.2.4进程的环境变量
2.2.5进程的错误方式
2.2.6进程的当前驱动器和目录
2.2.7进程继承的核心对象
2.2.8系统版本
2.3CreateProcess函数
2.3.1lpszImageName和lpszCommandLine
2.3.2lpsaProcess,lpsaThread和fInheritHandles
2.3.3fdwCreate
2.3.4lpvEnvironment
2.3.5lpszCurDir
2.3.6lpsiStartInfo
2.3.7lppiProcInfo
2.4终止进程
2.4.1ExitPorcess函数
2.4.2TerminateProcess函数
2.4.3进程的结束
2.5子进程
2.5.1运行分离的子进程
3.1何时创建线程
第3章 线程
3.2何时不用创建线程
3.3编写第一个线程函数
3.3.1线程的栈
3.3.2线程的CONTEXT结构
3.3.3线程的执行时间
3.4CreateThread函数
3.4.1lpsa
3.4.2cbStack
3.4.3lpStartAddr和lpvThreadParm
3.4.4fdwCreate
3.4.5lpIDThread
3.5终止线程
3.5.1ExitThread函数
3.5.2TerminateThread函数
3.5.3线程终止时发生些什么
3.6识别自己的身份
3.7系统如何安排线程
3.7.1如何使用Win32API分配优先级
3.7.2修改进程优先级类
3.7.3设定线程相对优先级
3.7.4挂起及恢复线程
3.8查看系统内部
3.9进程、线程和C运行时库
3.9.1要避免使用的C运行时函数
4.1我所知的CPU
第4章 Win32存储结构
4.2虚拟地址空间
4.2.1Windows95如何划分进程的地址空间
4.2.2WindowsNT如何划分进程的地址空间
4.3地址空间中的区域
4.4在区域内提交物理存储
4.5物理存储
4.5.1不在页面文件中维护的物理存储
4.6保护属性
4.6.1写时拷贝(Copy-On-Write)访问
4.6.2特殊访问保护属性标志
4.7综述
4.7.1区域内部
4.7.2Windows95地址空间的差别
5.1系统信息
第5章 探索虚存
5.1.1系统信息示例应用程序
5.2虚存状态
5.2.1虚存状态示例应用程序
5.3确定地址空间的状态
5.3.1VMQuery函数
5.3.2虚存分配示例应用程序
6.1在地址空间中保留区域
第6章 使用虚存
6.2在保留区内提交存储
6.3同时保留区域和提交存储
6.4何时提交物理存储
6.5回收物理存储和释放区域
6.5.1何时回收物理存储
6.5.2虚存分配示例应用程序
6.6改变保护属性
6.7在RAM中锁住物理存储
6.8线程的栈
6.8.1Windows95下的线程栈
6.8.2C运行时刻的栈检查函数
7.1存储映射EXE和DLL
第7章 存储映射文件
7.1.1静态数据不能被一个EXE或一个DLL文件的多个实例共享
7.2存储映射数据文件
7.2.1方法1:一个文件,一个缓冲区
7.2.2方法2:两个文件,一个缓冲区
7.2.3方法3:一个文件,两个缓冲区
7.2.4方法4:一个文件,零个缓冲区
7.3使用存储映射文件
7.3.1步骤1:创建或打开文件核心对象
7.3.2步骤2:创建文件映射核心对象
7.3.3步骤3:映射文件的数据到进程地址空间
7.3.4步骤4:从进程地址空间解除文件数据的映射
7.3.5步骤5和步骤6:关闭文件映射对象和文件对象
7.3.6使用存储映射文件处理大文件
7.4存储映射文件和一致性
7.4.1文件反转示例应用程序
7.4.2指定存储映射文件的基地址
7.5存储映射文件和Win32实现
7.5.1使用存储映射文件在进程间共享数据
7.5.2由页面文件备份的存储映射文件
7.5.3存储映射文件共享示例应用程序
7.6稀疏提交的存储映射文件
8.1什么是Win32堆?
第8章 堆
8.1.1进程的缺省堆
8.1.2创建自己的Win32堆
8.1.3创建另外的Win32堆
8.1.4消除Win32堆
8.1.5在C++中使用堆
8.1.616位的Windows堆函数
9.1同步概述
9.1.1最坏的事情之一
第9章 线程同步
9.2临界区
9.2.1创建临界区
9.2.2使用临界区
9.2.3临界区示例应用程序
9.3用核心对象同步线程
9.3.1互斥量
9.3.2互斥量示例应用程序
9.3.3信号量
9.3.4超级市场示例应用程序
9.3.5事件
9.3.6BucketofBalls示例应用程序
9.3.7SWMRG复合同步对象
9.3.8Bucket示例源代码
9.3.9文档统计示例应用程序
9.4线程挂起
9.4.1Sleep
9.4.2异步文件I/O
9.4.3WaitForInputIdle
9.4.4MsgWaitForMultipleObjects
9.4.5WaitForDebugEvent
9.4.6Interlocked函数族
10.1多任务
第10章 窗口消息和异步输入
10.1.1抢占式调度
10.2线程队列和消息处理
10.2.1Win32消息队列结构
10.2.2发送消息给线程的消息队列
10.2.3发送消息给窗口
10.2.4唤醒线程
10.3用消息发送数据
10.3.1拷贝数据示例应用程序
10.4非序列化输入
10.4.1怎样使输入非序列化
10.5局部输入状态
10.5.1键盘输入和焦点
10.5.2鼠标光标管理
10.5.3局部输入状态实验示例应用程序
11.1创建动态链接库
第11章 动态链接库
11.1.1映射DLL到进程地址空间
11.2DLL入口和出口函数
11.2.1DLL_PROCESS_ATTACH
11.2.2DLL_PROCESS_DETACH
11.2.3DLL_THREAD_ATTACH
11.2.4DLL_THREAD_DETACH
11.2.5系统如何把对DllMain的调用顺序化
11.2.6DllMain和C运行时库
11.3从DLL中输出函数和变量
11.4从DLL输出函数和变量
11.4.1DLL的头文件
11.5在同一EXE或DLL的多个映射之间共享数据
11.5.1EXE或DLL的段
11.5.2ModUse示例应用程序
11.5.3MultInst示例应用程序
第12章 线程局部存储
12.1动态线程局部存储
12.1.1使用动态线程局部存储
12.1.2动态线程局部存储示例应用程序
12.2静态线程局部存储
12.2.1静态局部存储示例应用程序
第13章 文件系统和文件输入输出
13.1Win32文件名约定
13.2系统和卷操作
13.2.1获得卷的特定信息
13.2.2磁盘信息查看示例应用程序
13.3目录操作
13.3.1获得当前目录
13.3.2改变当前目录
13.3.3获得系统目录
13.3.4获得窗口目录路径
13.3.5创建和删除目录
13.4拷贝、删除、移动及改名文件
13.4.1拷贝一个文件
13.4.2删除一个文件
13.4.3移动一个文件
13.4.4改名文件
13.5创建、打开和关闭文件
13.6同步读写文件
13.6.1定位文件指针
13.6.2设置文件尾
13.6.3强制缓冲的数据写入磁盘
13.6.4锁定及解锁文件的某区域
13.7异步读写文件
13.7.1同时执行多个异步文件I/O操作
13.7.2告警异步文件I/O
13.7.3告警I/O示例应用程序
13.8操作文件属性
13.8.1文件标志
13.8.2文件大小
13.8.3文件时间戳
13.9搜寻文件
13.9.1目录漫游示例应用程序
13.10文件系统变化通知
13.10.1文件变化示例应用程序
第14章 结构化异常处理
14.1终止处理程序
14.1.1通过例子理解终止处理程序
14.1.2关于finally块的几点说明
14.1.3SEH终止示例应用程序
14.2异常过滤程序和异常处理程序
14.2.1通过例子理解异常过滤程序和异常处理程序
14.2.2EXCEPTION-EXECUTE-HANDLER
14.2.3EXCEPTION-CONTINUE-EXECUTION
14.2.4EXCEPTION-CONTINUE-SEARCH
14.2.5全局展开
14.2.6停止全局展开
14.2.7关于异常过滤程序的进一步讨论
14.2.8GetExceptionInformation
14.2.9SEH异常情况示例应用程序
14.2.10SEHSUM示例应用程序
14.3软件异常情况
14.3.1SEH软件异常情况示例应用程序
14.3.2未处理的异常情况
14.3.3没有调试器附属时的未处理异常情况
14.3.4关闭异常情况消息框
14.3.5自己调用UnhandledExceptionFilter
14.3.6未处理的核心态异常情况
15.1字符集
15.1.1单字节与双字节字符集
第15章 UNICODE
15.1.2Unicode:宽字节字符集
15.2为什么要使用Unicode
15.3如何编写Unicode源代码
15.3.1WindowsNT和Unicode
15.3.2Windows95和Unicode
15.3.3C运行时库中对Unicode的支持
15.3.4Win32定义的Unicode数据类型
15.3.5Win32中的Unicode和ANSI函数
15.4使你的应用程序区分ANSI和UNICODE
15.4.1Win32中的字符串函数
15.4.2资源
15.4.3文本文件
15.4.4在Unicode与ANSI之间的字符串转换
15.4.5WindowsNT:窗口类和过程
16.1为什么需要打破进程边界墙:一个例子
第16章 闯过进程的边界墙
16.2使用Registry来注入一个DLL
16.3使用窗口钩子来注入一个DLL
16.3.1ProgramManager恢复示例应用程序
16.4使用远程线程来注入一个DLL
16.4.1如何装入一个DLL
16.5影响其它进程的Win32函数
16.5.1CreateRemoteThread
16.5.2GetThreadContext和SetThreadContext
16.5.3VirtualQueryEx和VirtualProtectEx
16.5.4ReadProcessMemory和WriteProcessMemory
16.6创建一个函数来把DLL注入到任意进程的地址空间内
16.6.1版本0:为什么显而易见的方法就是不起作用
16.6.2版本1:手工编码的机器语言
16.6.3版本2:AllocProcessMemory和CreateRemoteThread
16.6.4ProcMem实用函数
16.6.5InjectLib函数
16.7测试InjectLib函数
16.7.1注入库测试示例应用程序
16.7.2ImageWalk动态链接库
16.8小结
附录A消息拆析器
A.1消息拆析器
A.2子控制宏
A.3API宏
B.1ADVWIN32.H头文件
B.1.1WarningLevel4(四级警告)
B.1.2STRICT宏
附录BBUILD环境
B.1.3Unicode
B.1.4ARRAY_SIZE宏
B.1.5BEGINTHREADEX宏
B.1.6链接器指令
B.2不能在源文件中设置的项目Settings(设置)
var cpro_id = 'u317582';

已确认勘误

次印刷

页码 勘误内容 提交人 修订印次

C++与面向对象的途径
    • 名称
    • 类型
    • 大小

    光盘服务联系方式: 020-38250260    客服QQ:4006604884

    意见反馈

    14:15

    关闭

    云图客服:

    尊敬的用户,您好!您有任何提议或者建议都可以在此提出来,我们会谦虚地接受任何意见。

    或者您是想咨询:

    用户发送的提问,这种方式就需要有位在线客服来回答用户的问题,这种 就属于对话式的,问题是这种提问是否需要用户登录才能提问

    Video Player
    ×
    Audio Player
    ×
    pdf Player
    ×
    Current View

    看过该图书的还喜欢

    some pictures

    解忧杂货店

    东野圭吾 (作者), 李盈春 (译者)

    loading icon