您好,欢迎来到聚文网。 登录 免费注册
C++程序设计从入门到精通

C++程序设计从入门到精通

  • 字数: 1115000
  • 装帧: 平装
  • 出版社: 清华大学出版社
  • 出版日期: 2022-01-01
  • 商品条码: 9787302592372
  • 版次: 1
  • 开本: 16开
  • 页数: 712
  • 出版年份: 2022
定价:¥128 销售价:登录后查看价格  ¥{{selectedSku?.salePrice}} 
库存: {{selectedSku?.stock}} 库存充足
{{item.title}}:
{{its.name}}
精选
编辑推荐
"重点突出:本书不仅在内容上抓住并突出C++程序设计的重点和核心本质,而且在形式上通过加粗加框的方式突出各部分内容以及各个概念的中心词。 准确严谨:本书努力去除现有C++现有相关文献资料当中的浮华与众多的错误,内容准确严谨,并且详细讲解如何进行C++程序等价类划分,提高程序测试的有效性。 内容新颖:本书内容紧扣近期新国际标准和软件产业近期新实际需求,在C++面向对象程序设计、图形界面程序设计、设计模式和编程规范等方面具有鲜明特色。 例程丰富:本书提供了109个例程和众多的示例性代码,采用简明方式揭示C++程序设计本质之处,通过翔实例程和例句展现C++编程思想,方便入门与自学。"
内容简介
本书讲解C++程序设计知识及其编程方法,包括结构化程序设计、面向对象程序设计、共用体、异常处理、模板与标准模板库、字符串处理、标准输入输出与文件处理、MFC图形界面程序设计、设计模式、编程规范、程序调试与测试等内容,并且每章都附有习题。本书的章节编排与内容以人们学习与认知过程为基础,紧扣近期新国际标准,与公司的实际需求相匹配。本书采用特殊字体突出中心词,以期读者在轻松和欢乐之中迅速了解与掌握C++程序设计的知识和方法,并应用到实践中去。本书内容丰富易学,而且提供丰富例程和例句,既可以作为高等学校C++程序设计和面向对象程序设计等课程的基础教材,也可以作为需要使用C++语言的工程人员和科技工作者的自学参考书。
作者简介
雍俊海,清华大学软件学院教授、博士生导师和学术委员会主任,计算机辅助设计、图形学与可视化研究所所长,计算机学会会士,中国工业技术软件化产业联盟CAD专业技术委员会副主任,计算机学会计算机辅助设计与图形学专业委员会常委,全国技术产品文件标准化技术委员会委员,曾任IEEE形状造型和CAD/Graphics等多个国际会议程序委员会联合主席,国际期刊《Computers & Graphics》的Associate Editor。主要研究方向为计算机辅助设计软件理论与技术。获得过国家杰出青年科学基金、全国优秀博士论文奖和国际Elsevier Outstanding Service Award等荣誉。在《TOG》和《CAD》等期刊与会议上发表约200篇学术论文,负责或参与制订17项国家标准,出版了《C程序设计》等8本书,其中教材《Java程序设计教程》获教育部普通高等教育精品教材、北京高等教育精品教材和首届中国大学出版社图书奖一等奖等多个奖励。另外,还编写了生动有趣的个人科研科普专著《清华教授的小课堂:魔方真好玩》,减少了入门级复原魔方所需的转动次数。这本魔方科普专著入选了教育部2019年全国中小学图书馆(室)推荐书目。
目录
第1章 绪论
1.1 C++语言简介
1.2 C++入门程序
1.2.1 常规项目操作
1.2.2 C++类C部分经典入门程序
1.2.3 C++类C部分结构化入门程序
1.2.4 C++面向对象部分入门程序
1.3 本章小结
1.4 习题
1.4.1 练习题
1.4.2 思考题
第2章 结构化程序设计
2.1 预备知识
2.1.1 标识符
2.1.2 关键字和保留字
2.1.3 文件包含语句
2.1.4 宏定义与条件编译
2.2 数据类型
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.2.9 左值引用与右值引用
2.2.10 自动推断类型auto
2.2.11 类型别名定义typedef
2.2.12 常量属性const
2.3 运算
2.3.1 算术运算
2.3.2 关系运算
2.3.3 逻辑运算
2.3.4 位运算
2.3.5 赋值类运算
2.3.6 条件运算
2.3.7 其他运算
2.4 控制结构
2.4.1 if语句和if-else语句
2.4.2 switch语句
2.4.3 for语句
2.4.4 while语句
2.4.5 do-while语句
2.4.6 continue语句
2.4.7 break语句
2.5 模块划分
2.5.1 函数基础
2.5.2 主函数main
2.5.3 函数递归调用
2.5.4 函数指针类型
2.5.5 关键字static
2.5.6 模块划分的原则与过程
2.6 本章小结
2.7 习题
2.7.1 练习题
2.7.2 思考题
第3章 面向对象程序设计基础
3.1 类与对象
3.1.1 类声明与类定义基础
3.1.2 成员变量
3.1.3 位域
3.1.4 类对象与实例对象
3.1.5 构造函数
3.1.6 析构函数
3.1.7 成员函数
3.2 继承性
3.2.1 基本定义
3.2.2 父子类实例对象之间的兼容性
3.2.3 基本原则
3.2.4 虚拟继承
3.2.5 初始化单元和委托构造函数
3.2.6 构造函数与析构函数的执行顺序
3.3 封装性
3.3.1 成员的访问方式
3.3.2 继承方式和访问方式
3.3.3 在继承中的全局类
3.3.4 友元
3.4 多态性
3.4.1 函数重载(静态多态性)
3.4.2 默认函数参数值
3.4.3 运算符重载
3.4.4 函数覆盖(动态多态性)
3.5 关键字this
3.6 函数调用和关键字const
3.6.1 函数形式参数与调用参数
3.6.2 非静态成员函数本身的const常量属性
3.6.3 函数的返回数据类型
3.7 面向对象程序设计的核心思路
3.8 本章小结
3.9 习题
3.9.1 练习题
3.9.2 思考题
第4章 共用体
4.1 共用体的定义与格式
4.2 在共用体中调用成员变量的构造函数与析构函数
4.3 本章小结
4.4 习题
4.4.1 练习题
4.4.2 思考题
第5章 异常处理
5.1 异常的抛出与捕捉
5.2 浅拷贝和深拷贝
5.2.1 浅拷贝
5.2.2 深拷贝
5.3 避免内存泄漏
5.3.1 含有内存泄漏的例程
5.3.2 避开内存泄漏的方案
5.4 本章小结
5.5 习题
5.5.1 练习题
5.5.2 思考题
第6章 模板与标准模板库
6.1 自定义函数模板
6.2 自定义类模板
6.3 向量类模板vector
6.3.1 向量的构造函数、长度和容量
6.3.2 向量的迭代器
6.3.3 改变向量长度与容量
6.3.4 插入与删除元素
6.3.5 向量赋值与比较
6.4 集合类模板set
6.4.1 仿函数
6.4.2 集合的构造函数和迭代器
6.4.3 修改集合内容的成员函数
6.4.4 用于查询的集合成员函数
6.4.5 集合赋值与比较
6.5 排序函数模板sort
6.6 本章小结
6.7 习题
6.7.1 练习题
6.7.2 思考题
第7章 字符串处理
7.1 输出单个字符
7.2 基于数组的窄与宽字符串转换
7.3 字符串类
7.3.1 字符串的构造函数
7.3.2 字符串的容量与长度
7.3.3 获取字符串的内容与子串
7.3.4 字符串赋值与比较大小
7.3.5 字符串迭代器
7.3.6 插入与删除
7.3.7 查找与替换以及交换
7.3.8 基于字符串类的超长整数案例
7.4 本章小结
7.5 习题
7.5.1 练习题
7.5.2 思考题
第8章 标准输入输出与文件处理
8.1 标准输入输出
8.1.1 出入流类ios
8.1.2 输入流类istream
8.1.3 输出流类ostream
8.1.4 格式控制
8.2 文件流
8.2.1 只读文件流类ifstream
8.2.2 只写文件流类ofstream
8.2.3 读写文件流类fstream
8.3 习题
8.3.1 练习题
8.3.2 思考题
第9章 MFC图形界面程序设计
9.1 MFC程序总述
9.2 单文档程序设计
9.3 图形绘制
……
摘要
     第3 章面向对象程序设计基 础 如图3-1 所示,在刚出现计算机编程时,由于受计算机内存和硬盘容量等的,要 用计算机程序解决实际问题需要超高的技巧。那时只有少数的科学家与工程师拥有机会并 且具备编程能力。那时的代码需要精心设计,让代码尽可能短小;否则,当时的计算机根 本就无法加载。因此,那时的代码晦涩难懂,人们很难判断程序的正确性,而且只能在语 句层次上复用。这些都引发了 设计使得普通大众也能够编写程序。最早的结构化程序设计是面向过程程序设计,以函数 软件代码危机——软件代码极其难写,而且软件运行结果的 可信度也很差。后来,结构化程序设计的提出使得这种情况得到了很大改善。结构化程序 为单位进行代码编写与复用;除此之外,没有统一的代码组织模式。随着程序规模的扩大, 人们对程序代码的复用性、灵活性和扩展性不断地提出更高的需求,并且不断地探索相应 的解决方案。面向对象程序设计正是在这样的背景下提出的,它也是一种结构化程序设计, 在面向过程程序设计中引入类的概念,从而方便代码的组织。面向对象程序设计模仿人类 社会组织代码,并做了大量的简化和抽象。因此,采用面向对象程序设计编写出来的代码 远没有人类社会那么复杂。不过,对象的范围却扩大了很多,可以构造出很多在现实生活 中并不存在的对象。代码的世界就像童话世界那样丰富多彩,各种对象千奇百怪。在面向 对象程序设计中,根据类与类之间的继承关系, 其互相配套的功能函数组织在一起,代码的使用与复用变得更加有序化。程序的扩展性与 规模得到了进一步的提升。 代码主要是以类为单位进行编写与复用的。 所有的类可以组成森林的结构。因此,可以采用森林模式进行代码组织。类将数据以及与 图3-1 程序设计方法与程序代码复用粒度的历史变迁 3.1 类 与 对 象 C++面向对象程序设计以类、模板和共用体作为构造程序的主要基本单位,其中最主 要和最核心的是类。本章只涉及类,不考虑共用体等其他数据类型。如果只考虑与类相关 C++程序设计从入门到精通 的对象,那么这种对象依赖于类而存在,即在面向对象程序设计中,对象无法离开类而独 立存在。本节只介绍类与对象的基本定义以及基础性的性质,其他属性将在后续各节逐步 展开介绍。 3.1.1 类声明与类定义基础 定义类实际上是在定义新的数据类型。类的定义与声明通常都是在头文件中。类定义 的基本格式如下: class 类名 { 类成员声明或定义序列 }; 在上面格式中,第一行代码称为类的头部,其他代码称为类的类体。上面定义格式不考虑 类的继承关系,关于继承性将在第3.2 节介绍。 ..注意事项..: (1)类定义是以分号结束的。因此,在编写类定义时,不要遗忘最后这个分号。 (2)在同一个程序中,不允许定义2 个类,它们拥有相同的类名。 (3)即使2 个类拥有接近相同的结构与类成员,只要它们的类名不同,这两个类就是2 种不同的 类型。 类的所有成员都必须在类体内声明或定义。换句话说,除了在类体内部,无法在任何 其他地方给类增添新的成员。类的成员主要包括成员变量和成员函数。这些内容将在后面 的小节介绍。 ..小甜点..: 在本章中将会频繁出现访问这个术语,它的大致含义是使用或者查看。访问成员变量通常指的是 读取或修改成员变量的值。访问函数通常指的是调用函数。访问类通常指的是使用这个类,例如,用 这个类定义变量,或者定义这个类的子类,或者调用这个类的成员函数,或者读取或修改这个类的成 员变量的值。 类声明的格式如下: class 类名称; 类声明不是类定义。类声明只表明这个类将在其他地方定义。因为仅仅依据类声明无 法知道这个类包含哪些成员,所以对于在类声明之后并且在类定义之前的程序代码而言, 这个类都称为不完整的类。对于正在定义 // 11 // 12 // 13 // 14 上面的代码由2 个源程序代码文件组成。在源文件“CP_AMain.cpp ”中,第7 行代码 通过new 运算生成了具有2 个实例对象的动态数组,并将动态数组的首地址赋值给指针变 量p。第8 行和第9 行代码分别给这2 个实例对象的成员变量赋值,第10 行和第11 行代 码分别输出这2 个实例对象的成员变量的值。最后,一定要通过带有“[ ]”的delete 运算 将动态数组的内存释放,如第12 行代码所示。 ..小甜点..: (1)通过类的实例对象也可以访问隶属于类对象的静态成员。 (2)虽然通过实例对象与直接通过类名访问类对象的静态成员具有相同的效果,但是从编程规范 的角度上讲,仍然提倡直接通过类名访问类对象的静态成员,而不提倡通过实例

蜀ICP备2024047804号

Copyright 版权所有 © jvwen.com 聚文网