C++面向对象程序设计(第3版) 电子工业出版社

C++面向对象程序设计(第3版) 电子工业出版社 pdf epub mobi txt 电子书 下载 2025

杜茂康 著
图书标签:
  • C++
  • 面向对象
  • 程序设计
  • 第三版
  • 电子工业出版社
  • 编程
  • 教材
  • 计算机科学
  • 软件工程
  • 数据结构
  • 算法
想要找书就要到 静流书站
立刻按 ctrl+D收藏本页
你会得到大惊喜!!
店铺: 北京群洲文化专营店
出版社: 电子工业出版社
ISBN:9787121315831
商品编码:29779679166
包装:平装-胶订
出版时间:2017-06-01

具体描述

基本信息

书名:C++面向对象程序设计(第3版)

定价:52.00元

作者:杜茂康

出版社:电子工业出版社

出版日期:2017-06-01

ISBN:9787121315831

字数:

页码:

版次:1

装帧:平装-胶订

开本:16开

商品重量:0.4kg

编辑推荐


内容提要


本书以C 11标准为指导,深入浅出地介绍了标准C 面向对象程序设计的相关知识,以及用Visual C 进行面向对象的Windows程序设计的基本原理和方法,包括C 对C语言的扩展、类、对象、友元、继承、多态性、虚函数、重载、I/O流类库、文件、模板与STL、C Windows程序的结构、消息驱动、MFC应用程序框架、GDI、菜单、对话框、工具栏、文档与视图等内容。全书本着易于理解、实用性强的原则设计其内容和案例,并以一个规模较大的综合性程序的编制贯穿于C 面向对象技术和Windows程序设计的全过程,引导读者理解和掌握面向对象程序设计的思想、技术、方法,以及在Windows程序中应用自定义类实现程序功能的软件开发方法。本书取材新颖,内容全面,通俗易懂,可作为高等院校计算机、电子信息类专业及其他理工类相关专业的教材,也可作为C 语言自学者或程序设计人员的参考用书。

目录


目 录
章 C 与面向对象程序设计概述1
1.1 面向过程和面向对象程序设计1
1.2 面向对象程序语言的特征3
1.3 C 与面向对象程序设计5
1.3.1 C 简史6
1.3.2 C 的特点7
1.3.3 C 程序的结构7
1.3.4 标准C 程序设计9
1.4 数据的输入和输出11
1.4.1 C 的数据类型11
1.4.2 流的概念12
1.4.3 cin和提取运算符>>12
1.4.4 cout和插入运算符<<14
1.4.5 输出格式控制符16
1.4.6 数制基数17
1.4.7 string与字符串输入/输出18
1.4.8 数据输入的典型问题19
1.5 编程实作——Visual C 2015编程简介24
习题126
第2章 C 基础28
2.1 C 对C语言数据类型的扩展28
2.2 左值、右值及C 对局部变量声明的改进29
2.2.1 左值和右值29
2.2.2 C 局部变量的声明与定义29
2.3 指针30
2.3.1 指针概念的回顾30
2.3.2 空指针、void*以及获取数组首、尾元素位置的指针31
2.3.3 new和delete32
2.3.4 智能指针11C 34
2.4 引用36
2.4.1 左值引用36
2.4.2 右值引用11C 39
2.5 const和constexpr常量40
2.5.1 常量的定义40
2.5.2 const、constexpr与指针41
2.5.3 const与引用42
2.5.4 顶层const和底层const43
2.6 auto和decltype类型11C 44
2.7 begin、end和基于范围的for循环11C 45
2.8 类型转换46
2.9 函数49
2.9.1 函数原型49
2.9.2 函数参数传递的类型50
2.9.3 函数默认参数54
2.9.4 函数返回值55
2.9.5 函数重载57
2.9.6 函数与const和constexpr60
2.9.7 内联函数62
2.10 Lamada表达式11C 63
2.11 命名空间65
2.12 预处理器67
2.13 作用域和生命期68
2.13.1 作用域68
2.13.2 变量类型及生命期70
2.13.3 初始化列表、变量初始化与赋值71
2.13.4 局部变量与函数返回地址73
2.14 文件输入和输出73
2.15 编程实作75
习题277
第3章 类和对象81
3.1 类的抽象和封装81
3.1.1 抽象81
3.1.2 封装83
3.2 struct和class85
3.2.1 C 对struct的扩展85
3.2.2 类(class)87
3.3 数据成员89
3.4 成员函数90
3.4.1 成员函数定义方式和内联函数90
3.4.2 常量成员函数91
3.4.3 成员函数重载和默认参数值92
3.5 对象92
3.6 构造函数设计95
3.6.1 构造函数和类内初始值95
3.6.2 默认构造函数97
3.6.3 重载构造函数100
3.6.4 构造函数与初始化列表102
3.6.5 委托构造函数11C 104
3.7 析构函数105
3.8 赋值运算符函数、拷贝构造函数和移动函数设计107
3.8.1 赋值运算符函数107
3.8.2 拷贝构造函数110
3.8.3 移动函数11C 113
3.9 静态成员117
3.10 this指针120
3.11 对象应用124
3.12 类的作用域和对象的生存期128
3.13 友元131
3.14 编程实例:类的接口与实现的分离132
3.14.1 头文件133
3.14.2 源文件134
3.14.3 对类的应用135
习题3138
第4章 继承142
4.1 继承的概念142
4.2 protected和继承143
4.3 继承方式144
4.4 派生类对基类的扩展147
4.4.1 成员函数的重定义和名字隐藏147
4.4.2 基类成员访问149
4.4.3 using和隐藏函数重现11C 149
4.4.4 派生类修改基类成员的访问权限150
4.4.5 友元与继承151
4.4.6 静态成员与继承152
4.4.7 继承和类作用域154
4.5 构造函数和析构函数155
4.5.1 派生类构造函数的建立规则155
4.5.2 派生类构造函数和析构函数的调用次序159
4.5.3 派生类的赋值、拷贝和移动操作161
4.6 基类与派生类对象的关系163
4.6.1 派生类对象对基类对象的赋值和初始化163
4.6.2 派生类对象与基类对象的类型转换165
4.7 多重继承167
4.7.1 多重继承的概念和应用167
4.7.2 多重继承方式下成员的二义性169
4.7.3 多重继承的构造函数和析构函数169
4.8 虚拟继承171
4.9 继承和组合175
4.10 编程实例180
习题4185
第5章 多态性189
5.1 多态性概述189
5.1.1 多态的概念189
5.1.2 多态的意义191
5.1.3 多态和联编192
5.2 虚函数192
5.2.1 虚函数的意义192
5.2.2 override和final 11C 195
5.2.3 虚函数的特性197
5.3 虚析构函数201
5.4 纯虚函数和抽象类202
5.4.1 纯虚函数和抽象类202
5.4.3 抽象类的应用204
5.4 运行时类型信息210
5.4.1 dynamic_cast211
5.4.2 typeid214
5.5 编程实例216
习题5217
第6章 运算符重载221
6.1 运算符重载基础221
6.2 重载二元运算符223
6.2.1 类与二元运算符重载223
6.2.2 非类成员方式重载二元运算符的特殊用途226
6.3 重载一元运算符227
6.3.1 作为成员函数重载228
6.3.2 作为友元函数重载229
6.4 特殊运算符重载230
6.4.1 运算符 和--的重载230
6.4.2 下标[]和赋值运算符=t232
6.4.3 类型转换运算符234
6.4.4 函数调用运算符重载237
6.5 输入/输出运算符重载238
6.6 编程实例239
习题6244
第7章 模板和STL247
7.1 模板的概念247
7.2 函数模板和模板函数248
7.2.1 函数模板的定义248
7.2.2 函数模板的实例化249
7.2.3 模板参数250
7.3 类模板253
7.3.1 类模板的概念253
7.3.2 类模板的定义254
7.3.3 类模板实例化255
7.3.4 类模板的使用257
7.4 模板设计中的几个独特问题258
7.4.1 内联与常量函数模板258
7.4.2 默认模板实参 11C 259
7.4.3 成员模板259
7.4.4 可变参数函数模板 11C 260
7.4.5 模板重载、特化、非模板函数及调用次序261
7.4 STL264
7.4.1 函数对象264
7.4.2 顺序容器265
7.4.3 迭代器272
7.4.4 pair和tuple容器273
7.4.5 关联式容器276
7.4.6 算法281
7.5 编程实例284
习题7286
第8章 异常289
8.1 异常处理概述289
8.2 C 异常处理基础290
8.2.1 异常处理的结构290
8.2.2 异常捕获291
8.3 异常与函数292
8.4 异常处理的几种特殊情况294
8.5 异常和类298
8.5.1 构造函数和异常298
8.5.2 异常类300
8.5.3 派生异常类的处理303
习题8305
第9章 流和文件308
9.1 C I/O流及流类库308
9.2 I/O成员函数309
9.2.1 istream流中的常用成员函数309
9.2.2 ostream流中的常用成员函数311
9.2.3 数据输入、输出的格式控制312
9.3 文件操作315
9.3.1 文件和流315
9.3.2 二进制文件317
9.3.3 文件321
习题9322
0章 C Windows程序设计基础325
10.1 Windows程序设计基础325
10.1.1 窗口325
10.1.2 事件驱动和消息响应325
10.1.3 Windows程序的文件构成326
10.1.4 Visual C 的Windows程序设计方法327
10.2 Windows程序设计的常用数据结构328
10.3 Windows程序的基本结构331
10.4 Windows程序的控制流程333
10.5 Windows程序的数据输出338
10.6 消息驱动程序设计341
习题10344
1章 MFC程序设计346
11.1 MFC程序基础346
11.1.1 MFC类346
11.1.2 MFC程序的结构348
11.1.3 MFC程序的执行流程350
11.1.4 消息映射352
11.2 应用程序框架354
11.2.1 用向导建立应用程序框架354
11.2.2 应用程序框架的结构356
11.2.3 应用程序框架类之间的关系363
11.3 MFC程序的数据输出364
11.3.1 MFC中的图形类364
11.3.2 绘图对象366
11.3.3 用MFC向导添加消息映射函数368
11.3.4 OnPaint函数与输出372
11.4 对话框373
11.4.1 对话框的类型373
11.4.2 用资源编辑器建立对话框374
11.5 菜单和工具栏379
11.5.1 直接修改应用程序框架的菜单379
11.5.2 建立新菜单栏382
11.5.3 工具栏操作383
11.6 视图与文档384
习题11387
2章 MFC综合程序设计389
12.1 在应用程序框架中包含并修改自定义类389
12.2 在事件函数中操作类对象391
12.3 添加对话框394
12.4 添加程序菜单396
12.5 文档序列化399
习题12409
参考文献410

作者介绍


杜茂康,重庆邮电大学经济管理学院教授,主要教授《数据处理》、《C 程序设计》、《大学计算机》等课程,专业带头人,出版多部教材。

文摘


序言



《现代C++实践指南:从基础到精通》 作者:[作者姓名] 出版社:[出版社名称] 引言 在快速发展的软件开发领域,C++语言凭借其卓越的性能、强大的功能以及广泛的应用前景,始终占据着举足轻重的地位。无论是系统编程、游戏开发、嵌入式系统,还是高性能计算和金融工程,C++都展现出其不可替代的价值。然而,C++的复杂性也常常让初学者望而却步,即便是经验丰富的开发者,也可能在掌握其精髓和最新发展方面面临挑战。 《现代C++实践指南:从基础到精通》正是应运而生,旨在为读者提供一条清晰、系统且深入的学习路径,帮助您全面理解和掌握C++语言的核心概念、高级特性以及现代编程范式。本书不同于市面上许多泛泛而谈的教程,我们注重理论与实践的紧密结合,力求让读者不仅知其然,更能知其所以然,并能将所学知识融会贯通,应用于实际的项目开发中。 本书的目标读者涵盖了从C++初学者到有一定基础但希望系统提升的开发者。无论您是第一次接触C++,还是希望深入理解面向对象编程、泛型编程、并发编程等高级主题,亦或是想要了解C++11、C++14、C++17、C++20等现代C++标准带来的变革,本书都将是您宝贵的学习伙伴。 本书特色与价值 1. 循序渐进,结构清晰: 本书按照由浅入深、由易到难的逻辑顺序组织内容。从最基本的语法和数据类型开始,逐步过渡到面向对象的核心概念,再深入探讨模板、STL、异常处理、内存管理等高级主题,最后触及并发编程和现代C++特性。每一章节都建立在前一章节的基础上,确保读者能够稳步构建知识体系。 2. 强调“为何”与“如何”: 我们不仅解释“如何”使用C++的各种特性,更重要的是深入剖析“为何”要这样设计,以及这些特性在解决实际问题中扮演的角色。通过理解设计理念,读者能更深刻地把握语言的本质,写出更优雅、更高效的代码。 3. 代码示例丰富且实用: 本书包含了大量精心设计的、可直接运行的代码示例。这些示例不仅用于演示概念,更贴近实际开发场景,力求做到“学以致用”。读者可以通过阅读、理解和运行这些代码,加深对概念的理解,并直接获取可复用的代码片段。 4. 深入讲解面向对象编程(OOP): 作为现代软件开发的重要范式,面向对象编程在本书中占据了核心地位。我们将详细阐述类、对象、封装、继承、多态等基本概念,并探讨如何通过面向对象的设计原则来构建可维护、可扩展的软件系统。本书将深入讲解如何利用C++的特性来实现这些面向对象的设计思想,包括虚函数、抽象类、接口等。 5. 全面覆盖现代C++特性: 现代C++标准(C++11及之后)为C++带来了翻天覆地的变化,极大地提升了开发效率和代码质量。本书将系统介绍并深入讲解auto关键字、lambda表达式、智能指针、右值引用和移动语义、范围for循环、std::thread、std::future、std::async等关键的现代C++特性,帮助读者写出更简洁、更安全、更高效的代码。 6. STL深度解析: 标准模板库(STL)是C++强大的工具箱,包含各种容器、算法和迭代器。本书将不只是罗列STL组件,而是深入分析其设计原理、性能特点,并指导读者如何根据具体需求选择合适的STL组件,以及如何高效地使用它们来解决复杂问题。 7. 内存管理与性能优化: C++的强大性能离不开精细的内存管理。本书将详细探讨动态内存分配、智能指针、RAII(资源获取即初始化)技术,以及如何避免内存泄漏和悬挂指针等常见问题。同时,还会介绍一些基本的性能优化技巧,帮助读者写出高效的C++程序。 8. 异常处理与错误处理: 健壮的软件离不开有效的错误处理机制。本书将深入讲解C++的异常处理机制,包括try-catch块、throw语句,以及如何设计合理的异常处理策略,以提高程序的稳定性和可维护性。 9. 实战指导与最佳实践: 除了理论知识,本书更注重传授实际开发中的最佳实践。我们将探讨代码风格、设计模式、调试技巧等,引导读者养成良好的编程习惯,写出符合行业标准的优秀代码。 本书章节概览 第一部分:C++语言基础与面向对象入门 第一章:C++语言概览与开发环境搭建 C++的历史与现状 C++在现代软件开发中的地位 选择与搭建C++开发环境(IDE、编译器、构建工具) 第一个C++程序:Hello, World! 编译与链接的基本概念 第二章:C++基本语法与数据类型 变量、常量与作用域 基本数据类型(整型、浮点型、字符型、布尔型) 运算符与表达式 类型转换(隐式与显式) 输入与输出流(cin, cout) 控制流语句:条件判断(if, switch)、循环(for, while, do-while) 第三章:函数与程序结构 函数定义与调用 参数传递(传值、传引用、传指针) 函数重载 内联函数 递归函数 作用域与生命周期 第四章:指针、数组与字符串 指针的基本概念与操作 指针与数组的关系 动态内存分配(new, delete) 指向指针的指针 C风格字符串(char数组) C++字符串(std::string)的常用操作 第五章:结构体、联合体与枚举 结构体的定义与使用 指针与结构体 联合体(union)的概念与用途 枚举(enum)的定义与使用 C++11的强作用域枚举(enum class) 第六章:面向对象编程(OOP)导论 OOP的核心思想:封装、继承、多态 类(class)的定义与成员 访问控制(public, private, protected) 构造函数与析构函数 对象创建与销毁 第二部分:深入面向对象编程与面向对象设计 第七章:类的高级特性 静态成员(变量与函数) 成员函数(const成员函数) 友元函数与友元类 this指针 拷贝构造函数与拷贝赋值运算符 移动构造函数与移动赋值运算符(C++11) 第八章:继承与派生 派生类的定义与访问控制 基类与派生类成员的访问 构造函数与析构函数在继承中的行为 虚基类与菱形继承问题 第九章:多态与虚函数 虚函数的概念与作用 纯虚函数与抽象类 动态绑定(运行时多态) 虚析构函数的重要性 RTTI(运行时类型识别) 第十章:运算符重载 运算符重载的规则与方法 成员函数重载与友元函数重载 常用运算符重载示例(算术运算符、比较运算符、输入输出运算符、下标运算符等) 避免滥用运算符重载 第十一章:面向对象设计原则与模式 SOLID设计原则(单一职责、开放封闭、里氏替换、接口隔离、依赖倒置) 设计模式简介(工厂模式、单例模式、观察者模式等) 如何使用C++特性实现设计模式 第三部分:泛型编程、STL与内存管理 第十二章:模板(Templates) 函数模板的定义与使用 类模板的定义与使用 模板特化与偏特化 模板参数推导 模板的编译与链接 第十三章:标准模板库(STL) STL概述:容器、算法、迭代器 序列容器:vector, deque, list, forward_list 关联容器:set, multiset, map, multimap 无序关联容器(C++11):unordered_set, unordered_multiset, unordered_map, unordered_multimap 容器适配器:stack, queue, priority_queue 迭代器的分类与使用 第十四章:STL算法 常用算法:排序(sort)、查找(find)、遍历(for_each)、转换(transform)等 STL算法的泛用性 自定义比较函数与谓词 算法与Lambda表达式的结合使用 第十五章:异常处理 异常的基本概念与目的 try, catch, throw语句 标准异常类(std::exception及其派生类) 异常安全原则 RAII(资源获取即初始化)与异常安全 第十六章:内存管理与智能指针 动态内存分配的风险 智能指针(std::unique_ptr, std::shared_ptr, std::weak_ptr) 智能指针的使用场景与优势 自定义内存分配器(可选) 内存泄漏与内存越界检测 第四部分:现代C++特性与高级主题 第十七章:C++11及后续标准带来的革新 auto关键字与类型推导 Lambda表达式:匿名函数与函数对象 右值引用与移动语义 Range-based for loops (范围for循环) 初始化列表(Initializer Lists) nullptr关键字 第十八章:并发编程 多线程基础(std::thread) 线程同步(互斥量mutex, 锁lock_guard, unique_lock) 条件变量(std::condition_variable) 原子操作(std::atomic) 异步操作(std::async, std::future, std::promise) 第十九章:C++20 新特性概览(简要介绍) Concepts(概念) Modules(模块) Ranges(范围库) Coroutines(协程) 第二十章:调试与性能分析 使用调试器(GDB, Visual Studio Debugger) 断点、单步执行、查看变量 性能分析工具(gprof, VTune, profiler) 常见的性能瓶颈分析 附录:C++常用标准库速查 结语 《现代C++实践指南:从基础到精通》是一本集理论深度、实践广度与前沿性于一体的C++教程。我们希望通过本书,帮助您建立起扎实的C++知识体系,掌握面向对象和泛型编程的精髓,拥抱现代C++带来的便利与强大,最终能够自信地运用C++解决各种复杂的软件开发挑战。 C++的学习之路充满探索与乐趣,愿本书成为您在这条道路上不可或缺的伙伴。祝您阅读愉快,学有所成!

用户评价

评分

我之前在学习C++的道路上,经常会遇到一些关于如何组织代码、如何设计类、如何处理类之间关系的问题。虽然也看过一些零散的教程,但总感觉缺乏一个系统性的指导。这本书的标题——“C++面向对象程序设计(第3版)”——恰好点明了我当前学习的重点和难点。我理解,对于C++这样一门强大的语言,仅仅掌握语法是远远不够的,更重要的是要学会如何运用面向对象的思想来构建清晰、灵活、可维护的程序。而“第3版”的标签,则代表了这本书的内容是在不断更新和完善的,能够反映C++语言的发展和最新的编程实践,这对于想要跟上技术潮流的我来说,是极具吸引力的。我希望通过阅读这本书,能够构建起扎实的面向对象编程基础,从而在未来的项目开发中,能够写出更加高质量、更具扩展性的代码,并且能够更好地理解和参与到团队协作开发中。

评分

这本书的标题给我一种扎实、权威的感觉,尤其“第3版”这个标签,意味着它经历了时间的考验和读者的反馈,肯定是对之前版本进行了优化和升级,这让我对它的内容深度和广度充满了期待。我一直觉得,学习编程语言,尤其是像C++这样功能强大且复杂的语言,选择一本好书至关重要。我之前尝试过一些在线教程和零散的资料,虽然也能学到一些皮毛,但总感觉缺乏系统性,对于一些底层原理和设计思想的理解不够透彻。特别是面向对象这一块,虽然概念听起来简单,但要在实际编程中灵活运用,却需要大量的实践和深入的理解。我希望这本书能够通过清晰的讲解和丰富的案例,帮助我真正掌握面向对象设计的精髓,不仅仅是知道怎么写,更能理解为什么这么写,以及在不同场景下如何做出最优的设计选择。电子工业出版社的名字也让我觉得这本书的内容会比较严谨,适合作为一本参考书来深入学习,而不是泛泛而谈的入门读物。

评分

这本书的封面设计虽然简洁,但信息却非常清晰地传达了核心内容。看到“C++面向对象程序设计(第3版)”这几个字,我就知道这是一本进阶级的C++读物,而且“第3版”的字样暗示了其内容的更新和迭代,这对于学习最新的C++特性非常有价值。封面上“电子工业出版社”的标志也让我对这本书的出版质量和权威性有了初步的信任。我之所以对这本书产生了浓厚的兴趣,是因为我在过去的编程学习中,对C++的面向对象思想一直有些模糊的概念,虽然也阅读过一些基础书籍,但总觉得不够深入,无法真正理解其精髓。特别是对于类、对象、继承、多态、封装这些核心概念,在实际项目中应用起来总感觉生疏,有时甚至会遇到一些难以解决的bug,而这些bug的根源往往在于对面向对象设计原则的理解不到位。我相信,一本专门深入讲解C++面向对象程序设计的书籍,能够系统地梳理我的知识体系,帮助我建立起更加稳固的面向对象编程思维,从而在以后的开发工作中更加得心应手,编写出更加优雅、高效、易于维护的代码。我已经迫不及待地想翻开这本书,去探索C++面向对象世界的奥秘了。

评分

这款图书的标题,特别是“C++面向对象程序设计”这几个字,直接击中了我在学习C++过程中遇到的一个痛点。虽然我能够编写一些简单的C++程序,也了解一些基础的语法,但是当涉及到更大型、更复杂的项目时,我常常感到力不从心。我意识到,这很大程度上是因为我对面向对象编程的理解还不够深入。很多时候,我写的代码虽然能够实现功能,但可读性、可维护性以及扩展性都比较差,这让我非常苦恼。我深知,掌握面向对象的设计思想,是成为一名优秀的C++程序员的必经之路。而“第3版”的字样,则意味着这本书的内容是经过多次打磨和更新的,很可能包含了最新的C++标准和一些更先进的编程理念,这对我来说非常有吸引力,因为它能帮助我避免学习过时或者不完善的知识。

评分

看到“C++面向对象程序设计(第3版)”这个书名,我的脑海里立即浮现出我学习C++过程中遇到的那些挑战。我曾经在大学课堂上接触过C++,但那时候更多的是学习语法和基础算法,对于面向对象的设计思想,理解得非常有限。当时老师讲的一些概念,比如封装、继承、多态,总觉得有些抽象,很难将它们与实际的代码联系起来。后来工作后,我发现很多项目都大量运用了C++,而且很多优秀的开源项目都采用了面向对象的设计模式,这让我意识到,如果不掌握面向对象编程,就很难深入理解和参与到更复杂的软件开发中。因此,我一直在寻找一本能够系统、深入地讲解C++面向对象编程的书籍。“第3版”的出现,让我看到了作者更新知识、吸收最新C++特性的努力,这对于我来说是一个非常重要的考量因素,因为我希望学到的知识是与时俱进的。

相关图书

本站所有内容均为互联网搜索引擎提供的公开搜索信息,本站不存储任何数据与内容,任何内容与数据均与本站无关,如有需要请联系相关搜索引擎包括但不限于百度google,bing,sogou 等,本站所有链接都为正版商品购买链接。

© 2025 windowsfront.com All Rights Reserved. 静流书站 版权所有