• C++新经典
  • C++新经典
21年品牌 40万+商家 超1.5亿件商品

C++新经典

正版品新

52 3.7折 139 九五品

仅1件

北京昌平
认证卖家担保交易快速发货售后保障

作者王健伟

出版社清华大学出版社

出版时间2020-08

版次1

装帧其他

货号京0111-2

上书时间2024-09-20

鸭嘴兽书店

已实名 已认证 进店 收藏店铺

   商品详情   

品相描述:九五品
图书标准信息
  • 作者 王健伟
  • 出版社 清华大学出版社
  • 出版时间 2020-08
  • 版次 1
  • ISBN 9787302549727
  • 定价 139.00元
  • 装帧 其他
  • 开本 16开
  • 纸张 胶版纸
  • 页数 744页
  • 字数 1130千字
【内容简介】
本书是一部C/C
  编程语言书,定位在C/C
  语言本身的讲解上面。本书包含纸质图书以及教学源代码文件。 本书共分为3部分。第1部分为C/C
  语言概述(第1章),主要介绍了C和C
  语言的起源,市场需求、就业形势及如何搭建语言开发环境等内容。第2部分为C语言(第2~12章),主要介绍C语言的各种开发知识,包括基础知识,如常量、变量、表达式、程序结构、数组、函数等,也包括高级知识,如指针、结构、位运算、文件等,本部分的学习是为后面的学习打基础。第3部分为C
  语言(第13~20章),主要介绍C
  语言的各种开发知识,包括基础知识,如面向对象编程、命名空间、容器、迭代器,也包括类的详细介绍、模板与泛型的详细介绍; 高级知识,如智能指针详细介绍、并发与多线程详细介绍; 扩展知识,如内存高级话题、STL标准模板库大局观; C
  11新标准,如可调用对象、*引用、函数模板类型推断、引用折叠、完美转发、auto推断、decltype、lambda表达式、初始化列表、类型萃取等。 本书以择业为导向,涵盖90%的C/C
  语言常用开发知识,通俗易懂,范例众多,对于希望从事C/C
  开发的读者极具实用价值,本书是一本不可多得的、值得珍藏并能够陪伴读者数年甚至数十年的参考书。 本书主要适合以下几类读者: (1) C/C
  语言初学者或者由其他计算机语言转到C/C
  语言的程序员。 (2) 从事C/C
  开发多年的程序员,希望能够详细地复习一下基础的C/C
  知识,把整个知识线串一串,形成一个比较完整的学习体系。 (3) 已经掌握C
  98标准,但是需要进一步学习C
  11/14/17新标准的程序员。
【作者简介】
王健伟  男,1976年9月生,网名狂想(KuangXiang),1995年毕业于哈尔滨工程大学计算机及应用专业,拥有20多年软件开发经验,参与开发过数十个实际项目,涉及网络通信、网络安全、网络游戏等领域,具备极其深厚的软件开发实战经验。曾参与创办深圳知名网络安全公司安络科技有限公司,是中国首套网络安全在线扫描评估系统项目负责人、全球同服独立游戏《冒险之路》制作人。
【目录】
第1部分C/C  语言概述

第1章C/C  语言

1.1C和C  语言的起源、特点、关系与讲解范畴

1.2C/C  语言的市场需求与就业需求分析

1.3再谈C/C  就业

1.4搭建语言开发环境

第2部分C语言

第2章数据类型、运算符与表达式

2.1常量、变量、整型、实型和字符型

2.1.1如何创建最基本的能运行的C程序

2.1.2C语言的数据类型

2.1.3常量和变量

2.1.4整型数据

2.1.5实型数据

2.1.6字符型数据

2.1.7字符串变量

2.1.8变量赋初值

2.1.9数值型数据之间的混合运算

2.2算术运算符和表达式

2.2.1C语言的运算符

2.2.2算术运算符和算术表达式

2.2.3运算符优先级问题

2.2.4强制类型转换运算符

2.2.5自增和自减运算符

2.3赋值运算符和逗号运算符

2.3.1赋值运算符和赋值表达式

2.3.2逗号运算符和逗号表达式

第3章程序的基本结构和语句

3.1C语言的语句和程序的基本结构

3.1.1语句的分类

3.1.2程序的三种基本结构

3.1.3赋值语句的特殊写法

3.2数据的输出与数据的输入

3.2.1数据的输出

3.2.2数据的输入

 

 

第4章逻辑运算和判断选择

4.1关系运算符、关系表达式与逻辑运算符、逻辑表达式

4.1.1关系运算符和关系表达式

4.1.2逻辑运算符和逻辑表达式

4.2if语句详解

4.2.1if语句的三种形式

4.2.2if语句的嵌套

4.3条件运算符和switch语句

4.3.1条件运算符

4.3.2switch语句

第5章循环控制

5.1循环控制语句简介与goto、while、do…while语句精解

5.1.1循环控制语句简介

5.1.2goto语句

5.1.3while语句

5.1.4do…while语句

5.2for语句精解

5.2.1for语句的一般形式

5.2.2for语句的主要说明

5.3循环的嵌套、比较与break语句、continue语句

5.3.1循环的嵌套

5.3.2几种循环语句的比较

5.3.3break语句和continue语句

第6章数组

6.1一维数组

6.1.1一维数组的一般形式

6.1.2一维数组元素的引用

6.1.3一维数组的初始化

6.2二维数组

6.2.1二维数组的一般形式

6.2.2二维数组元素的引用

6.2.3二维数组的初始化

6.3字符数组

6.3.1字符数组的定义

6.3.2字符数组的初始化

6.3.3字符串和字符串结束标记

6.3.4字符数组的输入/输出

6.3.5字符串处理函数

第7章函数

7.1函数的基本概念和定义

7.1.1函数的基本概念

7.1.2函数的定义和返回值

7.2函数调用方式和嵌套调用

7.2.1函数调用的一般形式

7.2.2函数调用的方式

7.2.3函数的嵌套调用

7.3函数递归调用精彩演绎

7.3.1函数递归调用的定义

7.3.2递归调用的出口

7.3.3递归的优缺点及是否必须用递归

7.3.4递归的实际运用简介

7.4数组作为函数参数

7.4.1数组元素作为函数实参

7.4.2数组名作为函数实参

7.4.3用多维数组作为函数实参

7.5局部变量和全局变量

7.5.1局部变量

7.5.2全局变量

7.6变量的存储和引用与内部和外部函数

7.6.1变量的存储类别

7.6.2局部变量的存储方式

7.6.3全局变量跨文件引用

7.6.4函数的跨文件调用

7.6.5static关键字用法总结

第8章编译预处理

8.1宏定义

8.1.1不带参数的宏定义

8.1.2带参数的宏定义

8.2文件包含和条件编译

8.2.1文件包含

8.2.2条件编译

第9章指针

9.1指针的基本概念详解

9.1.1前提知识

9.1.2地址的概念

9.1.3直接访问和间接访问

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.6指针数组和数组指针

9.3.7多维数组的指针作为函数参数

9.4字符串的指针和指向字符串的指针变量

9.4.1字符串表示形式

9.4.2字符串指针作为函数参数

9.4.3字符指针变量与字符数组

9.5函数指针和返回指针值的函数

9.5.1用函数指针变量调用函数

9.5.2把指向函数的指针变量作为函数参数

9.5.3返回指针值的函数

9.6指针数组、指针的指针与main函数参数

9.6.1指针数组概念回顾

9.6.2指向指针的指针

9.6.3指针数组作为main函数参数

9.7本章小结

第10章结构体与共用体

10.1结构体变量定义、引用与初始化

10.1.1结构体简介

10.1.2定义结构体类型变量的方法

10.1.3结构体类型变量的引用

10.1.4结构体变量的初始化

10.2结构体数组与结构体指针

10.2.1结构体数组

10.2.2结构体指针

10.2.3用指向结构体的指针作为函数参数

10.3共用体、枚举类型与typedef

10.3.1共用体

10.3.2枚举类型

10.3.3用typedef定义类型

第11章位运算

11.1位的概念和位运算符简介

11.1.1位的概念

11.1.2位运算符简介

11.2位运算的具体应用

第12章文件

12.1文件简介及文本、二进制文件区别

12.1.1文件简介

12.1.2文本文件和二进制文件区别详细解释

12.2文件的打开、关闭、读写与实战操练

12.2.1文件的打开

12.2.2文件的关闭

12.2.3文件的读写

12.2.4文件读写实战操练

12.3将结构体写入二进制文件再读出

12.3.1将结构体写入二进制文件

12.3.2从二进制文件中读出结构体数据

12.3.3文件使用方式中"rb"和"r"、"wb"和"w"的区别

第3部分C  语言

第13章C  基本语言

13.1语言特性、工程构成与可移植性

13.1.1语言特性: 过程式、对象式程序设计

13.1.2C  程序和项目文件构成谈

13.1.3编译型语言概念与可移植性问题

13.2命名空间简介与基本输入/输出精解

13.2.1命名空间简介

13.2.2基本输入/输出

13.3auto、头文件防卫、引用与常量

13.3.1局部变量和初始化

13.3.2auto关键字简介

13.3.3头文件防卫式声明

13.3.4引用

13.3.5常量

13.4范围for、new内存动态分配与nullptr

13.4.1范围for语句

13.4.2动态内存分配问题

13.4.3nullptr

13.5结构、权限修饰符与类简介

13.5.1结构回顾

13.5.2public和private权限修饰符

13.5.3类简介

13.5.4类的组织

13.6函数新特性、inline内联函数与const详解

13.6.1函数回顾与后置返回类型

13.6.2inline内联函数

13.6.3函数特殊写法总结

13.6.4const char *、char const *与char * const 三者的区别

13.6.5函数形参中带const

13.7string类型

13.7.1总述

13.7.2string类型简介

13.7.3定义和初始化string对象

13.7.4string对象上的常用操作

13.8vector类型

13.8.1vector类型简介

13.8.2定义和初始化vector对象

13.8.3vector对象上的操作

13.9迭代器精彩演绎、失效分析及弥补、实战

13.9.1迭代器简介

13.9.2容器的迭代器类型

13.9.3迭代器begin/end、反向迭代器rbegin/rend操作

13.9.4迭代器运算符

13.9.5const_iterator迭代器

13.9.6迭代器失效

13.9.7范例演示

13.10类型转换: static_cast、reinterpret_cast等

13.10.1隐式类型转换

13.10.2显式类型转换(强制类型转换)

13.10.3总结

第14章类

14.1成员函数、对象复制与私有成员

14.1.1总述

14.1.2类基础

14.1.3成员函数

14.1.4对象的复制

14.1.5私有成员

14.2构造函数详解、explicit与初始化列表

14.2.1称呼上的统一

14.2.2构造函数

14.2.3多个构造函数

14.2.4函数默认参数

14.2.5隐式转换和explicit

14.2.6构造函数初始化列表

14.3inline、const、mutable、this与static

14.3.1在类定义中实现成员函数inline

14.3.2成员函数末尾的const

14.3.3mutable

14.3.4返回自身对象的引用——this

14.3.5static成员

14.4类内初始化、默认构造函数、“=default;”和“=delete;”

14.4.1类相关非成员函数

14.4.2类内初始值

14.4.3const成员变量的初始化

14.4.4默认构造函数

14.4.5“=default;”和“=delete;”

14.5拷贝构造函数

14.6重载运算符、拷贝赋值运算符与析构函数

14.6.1重载运算符

14.6.2拷贝赋值运算符(赋值运算符)

14.6.3析构函数(释放函数)

14.6.4几个话题

14.7子类、调用顺序、访问等级与函数遮蔽

14.7.1子类概念

14.7.2子类对象定义时调用构造函数的顺序

14.7.3访问等级(public、protected与private)

14.7.4函数遮蔽

14.8父类指针、虚/纯虚函数、多态性与析构函数

14.8.1父类指针与子类指针

14.8.2虚函数

14.8.3多态性

14.8.4纯虚函数与抽象类

14.8.5父类的析构函数一般写成虚函数

14.9友元函数、友元类与友元成员函数

14.9.1友元函数

14.9.2友元类

14.9.3友元成员函数

14.10RTTI、dynamic_cast、typeid、typeinfo与虚函数表

14.10.1RTTI是什么

14.10.2dynamic_cast运算符

14.10.3typeid运算符

14.10.4type_info类

14.10.5RTTI与虚函数表

14.11基类与派生类关系的详细再探讨

14.11.1派生类对象模型简介

14.11.2派生类构造函数

14.11.3既当父类又当子类

14.11.4不想当基类的类

14.11.5静态类型与动态类型

14.11.6派生类向基类的隐式类型转换

14.11.7父类、子类之间的复制与赋值

14.12左值、右值、左值引用、右值引用与move

14.12.1左值和右值

14.12.2引用分类

14.12.3左值引用

14.12.4右值引用

14.12.5std::move函数

14.12.6左值、右值总结说明

14.13临时对象深入探讨、解析与提高性能手段

14.13.1临时对象的概念

14.13.2产生临时对象的情况和解决方案

14.14对象移动、移动构造函数与移动赋值运算符

14.14.1对象移动的概念

14.14.2移动构造函数和移动赋值运算符概念

14.14.3移动构造函数演示

14.14.4移动赋值运算符演示

14.14.5合成的移动操作

14.14.6总结

14.15继承的构造函数、多重继承、类型转换与虚继承

14.15.1继承的构造函数

14.15.2多重继承

14.15.3类型转换

14.15.4虚基类与虚继承(虚派生)

14.16类型转换构造函数、运算符与类成员指针

14.16.1类型转换构造函数

14.16.2类型转换运算符(类型转换函数)

14.16.3类型转换的二义性问题

14.16.4类成员函数指针

14.16.5类成员变量指针

第15章模板与泛型

15.1模板概念与函数模板的定义、调用

15.1.1模板概念

15.1.2函数模板的定义

15.1.3函数模板的调用

15.1.4非类型模板参数

15.2类模板概念与类模板的定义、使用

15.2.1类模板概念

15.2.2类模板的定义

15.2.3类模板的成员函数

15.2.4类模板名字的使用

15.2.5非类型模板参数的使用

15.3使用typename的场合、函数模板、默认模板参数与趣味写法分析

15.3.1typename的使用场合

15.3.2函数指针作为其他函数的参数

15.3.3函数模板趣味用法举例

15.3.4默认模板参数

15.4成员函数模板,模板显式实例化与声明

15.4.1普通类的成员函数模板

15.4.2类模板的成员函数模板

15.4.3模板显式实例化与声明

15.5using定义模板别名与显式指定模板参数

15.5.1using定义模板别名

15.5.2显式指定模板参数

15.6模板全特化与偏特化(局部特化)

15.6.1类模板特化

15.6.2函数模板特化

15.6.3模板特化版本放置位置建议

15.7可变参模板与模板模板参数

15.7.1可变参函数模板

15.7.2可变参类模板

15.7.3模板模板参数

第16章智能指针

16.1直接内存管理(new/delete)、创建新工程与观察内存泄漏

16.1.1直接内存管理(new/delete)

16.1.2创建新工程与观察内存泄漏

16.2new/delete探秘、智能指针总述与shared_ptr基础

16.2.1new/delete探秘

16.2.2智能指针总述

16.2.3shared_ptr基础

16.3shared_ptr常用操作、计数与自定义删除器等

16.3.1shared_ptr引用计数的增加和减少

16.3.2shared_ptr指针常用操作

16.4weak_ptr简介、weak_ptr常用操作与尺寸问题

16.4.1weak_ptr简介

16.4.2weak_ptr常用操作

16.4.3尺寸问题

16.5shared_ptr使用场景、陷阱、性能分析与使用建议

16.5.1std::shared_ptr使用场景

16.5.2std::shared_ptr使用陷阱分析

16.5.3性能说明

16.5.4补充说明和使用建议

16.6unique_ptr简介与常用操作

16.6.1unique_ptr简介

16.6.2unique_ptr常用操作

16.7返回unique_ptr、删除器与尺寸问题

16.7.1返回unique_ptr

16.7.2删除器

16.7.3尺寸问题

16.8智能指针总结

第17章并发与多线程

17.1基本概念和实现

17.1.1并发、进程、线程的基本概念和综述

17.1.2并发的实现方法

17.1.3C  11新标准线程库

17.2线程启动、结束与创建线程写法

17.2.1范例演示线程运行的开始和结束

17.2.2其他创建线程的写法

17.3线程传参详解、detach坑与成员函数作为线程函数

17.3.1传递临时对象作为线程参数

17.3.2临时对象作为线程参数继续讲

17.3.3传递类对象与智能指针作为线程参数

17.3.4用成员函数作为线程入口函数

17.4创建多个线程、数据共享问题分析与案例代码

17.4.1创建和等待多个线程

17.4.2数据共享问题分析

17.4.3共享数据的保护实战范例

17.5互斥量的概念、用法、死锁演示与解决详解

17.5.1互斥量的基本概念

17.5.2互斥量的用法

17.5.3死锁

17.6unique_lock详解

17.6.1unique_lock取代lock_guard

17.6.2unique_lock的第二个参数

17.6.3unique_lock的成员函数

17.6.4unique_lock所有权的传递

17.7单例设计模式共享数据分析、解决与call_once

17.7.1设计模式简单谈

17.7.2单例设计模式

17.7.3单例设计模式共享数据问题分析、解决

17.7.4std::call_once

17.8condition_variable、wait、notify_one与notify_all

17.8.1条件变量std::condition_variable、wait与notify_one

17.8.2上述代码深入思考

17.8.3notify_all

17.9async、future、packaged_task与promise

17.9.1std::async和std::future创建后台任务并返回值

17.9.2std::packaged_task

17.9.3std::promise

17.9.4小结

17.10future其他成员函数、shared_future与atomic

17.10.1std::future的其他成员函数

17.10.2续谈std::async的不确定性问题

17.10.3std::shared_future

17.10.4原子操作std::atomic

17.11Windows临界区与其他各种mutex互斥量

17.11.1Windows临界区

17.11.2多次进入临界区试验

17.11.3自动析构技术

17.11.4recursive_mutex递归的独占互斥量

17.11.5带超时的互斥量std::timed_mutex和std::

recursive_timed_mutex

17.12补充知识、线程池浅谈、数量谈与总结

17.12.1知识点补充

17.12.2浅谈线程池

17.12.3线程创建数量谈

17.12.4C  11多线程总结

第18章内存高级话题

18.1new、delete的进一步认识

18.1.1总述与回顾

18.1.2从new说起

18.2new内存分配细节探秘与重载类内operator new、delete

18.2.1new内存分配细节探秘

18.2.2重载类中的operator new和operator delete操作符

18.2.3重载类中的operator new[]和operator delete[]操作符

18.3内存池概念、代码实现和详细分析

18.3.1内存池的概念和实现原理简介

18.3.2针对一个类的内存池实现演示代码

18.3.3内存池代码后续说明

18.4嵌入式指针概念及范例、内存池改进版

18.4.1嵌入式指针

18.4.2内存池代码的改进

18.5重载全局new/delete、定位new及重载

18.5.1重载全局operator new和operator delete操作符

18.5.2定位new(placement new)

18.5.3多种版本的operator new重载

第19章STL标准模板库大局观

19.1STL总述、发展史、组成与数据结构谈

19.1.1几个概念与推荐书籍

19.1.2算法和数据结构谈

19.1.3STL发展史和各个版本

19.1.4标准库的使用说明

19.1.5STL的组成部分

19.2容器分类与array、vector容器精解

19.2.1容器的分类

19.2.2容器的说明和简单应用

19.3容器的说明和简单应用例续

19.3.1deque和stack

19.3.2queue

19.3.3list

19.3.4其他

19.4分配器简介、使用与工作原理说

19.4.1分配器简介

19.4.2分配器的使用

19.4.3其他的分配器与原理说

19.4.4自定义分配器

19.5迭代器的概念和分类

19.5.1迭代器基本概念

19.5.2迭代器的分类

19.6算法简介、内部处理与使用范例

19.6.1算法简介

19.6.2算法内部一些处理

19.6.3一些典型算法使用范例

19.7函数对象回顾、系统函数对象与范例

19.7.1函数对象/仿函数回顾

19.7.2标准库中定义的函数对象

19.7.3标准库中定义的函数对象范例

19.8适配器概念、分类、范例与总结

19.8.1适配器基本概念

19.8.2容器适配器

19.8.3算法适配器

19.8.4迭代器适配器

19.8.5总结

第20章高级话题与新标准

20.1函数调用运算符与function类模板

20.1.1学习C  的体会

20.1.2函数调用运算符

20.1.3不同调用对象的相同调用形式

20.1.4标准库function类型简介

20.1.5总结

20.2万能引用

20.2.1类型区别基本概念

20.2.2universal reference基本认识

20.2.3万能引用资格的剥夺与辨认

20.3理解函数模板类型推断与查看类型推断结果

20.3.1如何查看类型推断结果

20.3.2理解函数模板类型推断

20.4引用折叠、转发、完美转发与forward

20.4.1引用折叠规则

20.4.2转发与完美转发

20.4.3std::forward

20.4.4std::move和std::forward的区别

20.4.5再谈万能引用

20.5理解auto类型推断与auto应用场合

20.5.1auto类型常规推断

20.5.2auto类型针对数组和函数的推断

20.5.3auto类型std::initializer_list的特殊推断

20.5.4auto不适用场合举例

20.5.5auto适用场合举例

20.6详解decltype含义与decltype主要用途

20.6.1decltype含义和举例

20.6.2decltype主要用途

20.6.3总结

20.7可调用对象、std::function与std::bind

20.7.1可调用对象

20.7.2std::function可调用对象包装器

20.7.3std::bind绑定器

20.7.4总结

20.8lambda表达式与for_each、find_if简介

20.8.1用法简介

20.8.2捕获列表

20.8.3lambda表达式延迟调用易出错细节分析

20.8.4lambda表达式中的mutable

20.8.5lambda表达式的类型和存储

20.8.6lambda表达式再演示和优点总结

20.9lambda表达式捕获模式的陷阱分析和展示

20.9.1捕获列表中的&

20.9.2形参列表可以使用auto

20.9.3成员变量的捕获问题

20.9.4广义lambda捕获

20.9.5静态局部变量

20.10可变参数函数、initializer_list与省略号形参

20.10.1可变参数函数

20.10.2initializer_list(初始化列表)

20.10.3省略号形参

20.11萃取技术概念与范例等

20.11.1类型萃取简介

20.11.2类型萃取范例

20.11.3迭代器萃取简介

20.11.4总结

后记IT职业发展的未来之路
点击展开 点击收起

—  没有更多了  —

以下为对购买帮助不大的评价

此功能需要访问孔网APP才能使用
暂时不用
打开孔网APP