C++编程思想(第2卷)(实用编程技术) PDF 高清版

  • 更新时间:
  • 2288人关注
  • 点击下载

给大家带来的一篇关于C++编程相关的电子书资源,介绍了关于C++、编程思想、程技术方面的内容,本书是由机械工业出版社出版,格式为PDF,资源大小30.94MB,埃克尔编写,目前豆瓣、亚马逊、当当、京东等电子书综合评分为:7.1分

《C++编程思想(第2卷)(实用编程技术)》介绍C++实用的编程技术和最佳的实践方法,深入探究了异常处理方法和异常安全设计;介绍C++的字符串、输入输出流、STL算法、容器和模板的现代用法,包括模板元编程;解释多重继承问题的难点,展示RTTI的实际使用,描述了典型的设计模式及其实现,特别介绍被认为是标准C++下一版特征之一的多线程处理编程技术,并提供了最新的研究成果。《C++编程思想》(第2卷)适合作为高等院校计算机及相关专业的本科生、研究生的教材,也可供从事软件开发的研究人员和科技工作者参考。

目录

  • 出版者的话
  • 专家指导委员会
  • 译者序
  • 前言
  • 第一部分 建立稳定的系统
  • 第1章 异常处理
  • 第2章 防御性编程
  • 第二部分 标准C++库
  • 第3章 深入理解字符串
  • 第4章 输入输出流
  • 第5章 深入理解模板
  • 第6章 通用算法
  • 第7章 通用容器
  • 第三部分 专题
  • 第8章 运行时类型识别
  • 第9章 多重继承
  • 第10章 设计模式
  • 第11章 并发
  • 附录
  • 附录A 推荐读物
  • 附录B 其他
  • 索引
     
展开阅读
精选笔记:详细解读C++编程中的匿名类类型和位域

18小时9分钟前回答

匿名类类型
类可以是匿名的 - 也就是说,可以在没有 identifier 的情况下声明类。在将类名称替换为 typedef 名称时,这会很有用,如下所示:

typedef struct
{
  unsigned x;
  unsigned y;
} POINT;

注意
上面示例中显示的匿名类的用法对于保留与现有 C 代码的兼容性很有用。在某些 C 代码中,将 typedef 与匿名结构结合使用是很普遍的。
如果您希望对类成员的引用就像它未包含在独立类中的情况一样出现,则匿名类也很有用,如下所示:

struct PTValue
{
  POINT ptLoc;
  union
  {
    int iValue;
    long lValue;
  };
};

PTValue ptv;

在上面的代码中,可以使用对象成员选定内容运算符 (iValue.) 访问 ,如下所示:

int i = ptv.iValue;

匿名类受某些限制的约束。(有关匿名联合的详细信息,请参阅联合。) 匿名类:
不能具有构造函数或析构函数。
不能作为函数的参数传递(除非使用省略号使类型检查无效)。
无法作为函数中的返回值返回。

C++ 位域
类和结构可包含比整型类型占用更少存储空间的成员。这些成员被指定为位域。位域成员声明符规范的语法如下:
语法

declarator : constant-expression

备注
(可选)declarator 是在程序中访问成员的名称。它必须是整型类型(包括枚举类型)。 常数表达式指定结构中成员所占据的位数。匿名位域 — 即不带标识符的位域成员,可用于填充。
注意
宽度为 0 的未命名位域强制将下一个位域与下一个 type 边界对齐,其中 type 是成员的类型。
下面的示例声明包含位域的结构:

// bit_fields1.cpp
// compile with: /LD
struct Date {
  unsigned short nWeekDay : 3;  // 0..7  (3 bits)
  unsigned short nMonthDay : 6;  // 0..31 (6 bits)
  unsigned short nMonth  : 5;  // 0..12 (5 bits)
  unsigned short nYear   : 8;  // 0..100 (8 bits)
};

Date 类型的对象的概念上的内存布局如下图所示。

2016125141100380.jpeg (448×116)

数据对象的内容布局
请注意,nYear 的长度为 8 位,并且会溢出声明类型 unsigned short 的字边界。因此,它始于新 unsigned short 的开头。并不必使所有位域均适合基础类型的对象;根据声明中请求的位数来分配新的存储单元。
如果结构的声明包含长度为 0 的未命名字段(如以下示例所示),

// bit_fields2.cpp
// compile with: /LD
struct Date {
  unsigned nWeekDay : 3;  // 0..7  (3 bits)
  unsigned nMonthDay : 6;  // 0..31 (6 bits)
  unsigned      : 0;  // Force alignment to next boundary.
  unsigned nMonth  : 5;  // 0..12 (5 bits)
  unsigned nYear   : 8;  // 0..100 (8 bits)
};

则内存布局如下图中所示。

2016125141203296.jpeg (525×80)

带有零长度位域的数据对象的布局
位域的基础类型必须是整型类型。

展开阅读

资源下载

相关资源

  • 深入实践C++模板编程

    深入实践C++模板编程

    C++模板编程领域的经典著作,由资深C++开发工程师撰写。本书以透彻分析原理为前提,深入讲解了模板编程的基本原理、标准库中算法与容器等模板的实现原理;以实践为导向,通过大量的模

    大小:76.6 MBC++

    立即下载
  • 小学生C++趣味编程

    小学生C++趣味编程

    《 小学生C++趣味编程 》难度系数适度、易懂易教的教材内容是进行中小学信息学课堂教学的重要一环。 选择80好几个接近中学生学习衣食住行的事例,融合小学生的认知能力规律性,激起小孩

    大小:57 MB儿童编程

    立即下载
  • Visual C++实践与提高:图形图像编程篇

    Visual C++实践与提高:图形图像编程篇

    VisualC++实践与提高—图形图像编程篇 作者:李于剑 丛书名:计算机编程实践与提高系列 中国铁道 出版日期:2001年7月 本书将向读者讲述如何用VisualC++进行图形图像编程。本书共分为图形篇、图像篇、综合提高篇。图形篇以计算机绘图的基础知识为铺垫,介绍了各种图形元素的绘制方法,并结合实际代码实现了一个小型的绘图系统;图像篇通过实例向读者介绍了不同格式图像的处理方法,并给出了一些特效处理的技巧;综合提高篇综合应用了图形图像

    大小:16.32 MBC++

    立即下载
  • Visual C++编程宝典(十年典藏版)

    Visual C++编程宝典(十年典藏版)

    Visual C++编程宝典(十年典藏版) 作者:刘锐宁,李伟明,梁水 编著 出版时间:2011 《Visual C++编程宝典(十年典藏版)》是一本集技能、范例、项目和应用为一体的学习手册,书中介绍了应用VisualC++6.0进行程序开发的各种技术、技巧。全书分4篇,共22章内容,其中,第1篇为技能学习篇,主要包括VisualC++集成开发环境,走进C++语言基础,运算符与表达式的应用,流程控制语句,函数的使用,面向对象程序设计,全面了解对话框,工具箱中的常用控件,高级

    大小:157.62MBVisual C++

    立即下载
  • Visual C++打印编程技术与工程实践

    Visual C++打印编程技术与工程实践

    VisualC++打印编程技术与工程实践 作者:求是科技李鲲程 出版时间:2003/9/1 本书介绍利用VisualC++编制常用打印程序的技术,全书分为9章。第1章主要介绍打印编程所需要的基础知识,第2章介绍了打印控制技术,第3章“打印预览”分析了VisualC++框架中的打印预览机制,并介绍了其实现方法,第4章介绍了打印条形码的方法和技巧,第5章介绍了打印信封的方法,第6章介绍了打印商业专用发票的编程方法,第7章介绍了图片打印的编程方法,第8章介绍了简历的编

    大小:30.68 MBC++

    立即下载
  • Visual C++网络通信编程实用案例精选

    Visual C++网络通信编程实用案例精选

    Visual C++网络通信编程实用案例精选 作者:丁展,刘海英等编著 出版时间:2004 丛编项:Visual C++案例精选系列 提供了大量的网络通信编程实例,涉及到网络编程的各个领域;每个实例都提供了完整的源代码和编译通过的应用程序,读者可以在此基础上很方便地进行二次开发;所有的实例都按照设计思路、相关概念、原理,具体的实现方式进行介绍,读者能够很容易地掌握整个应用程序开发的全过程。本书精选了大量网络编程应用案例,基本上涵盖了当前

    大小:73.48MBVC++

    立即下载

学习笔记

19小时23分钟前回答

C++编程中私有和保护以及公有的类成员访问控制

private 语法 private: [member-list]private base-class 备注 当位于类成员列表之前时,private 关键字指定这些成员仅可从成员函数和该类的友元中进行访问。这适用于声明到下一个访问指示符或类的末尾的所有成员。 当位于基类的名称之前时,private 关键字指定基类的公共成员和受保护成员为派生类的私有成员。 类中成员的默认访问是私有的。结构或联合中成员的默认访问是公共的。 基类的默认访问对于类是私有的,而对于结构是公共的。 联合不能具有基类。 例子 // keyword_private.cppclass BaseClass {public: // privMem accessible from member function int pubFunc() { return privMem; }private: void privMem;};class DerivedClass : public BaseClass {public:……

9小时48分钟前回答

C++编程中new运算符的使用学习教程

new运算符用作从自由存储为 type-name 的对象或对象数组分配内存,并将已适当分类的非零指针返回到对象。 [::] new [placement] new-type-name [new-initializer][::] new [placement] ( type-name ) [new-initializer] 备注 如果不成功,则 new 将返回零或引发异常;有关详细信息,请参阅 new 和 delete 运算符。 通过编写自定义异常处理例程并调用 _set_new_handler 运行库函数(以您的函数名称作为其参数),可以更改此默认行为。 有关如何在托管堆上创建对象的信息,请参阅 gcnew。 使用 new 为 C++ 类对象分配内存时,将在分配内存后调用对象的构造函数。 使用 delete 运算符可解除分配使用 new 运算符分配的内存。 以下示例先分配然后释放……