文章目录

  • 十分钟带你解读Effective C++(导读)
  • 一、术语
    • 1.声明式
    • 2.签名式
    • 3.定义式
    • 4.初始化
    • 5.STL
    • 6.undefined behavior(不明确行为)
    • 7.interface接口
  • 二、命名习惯
  • 三、关于线程
  • 四、TR1和Boost
  • 总结

十分钟带你解读Effective C++(导读)

参考书籍EffectiveC++第三版,后续不断更新,以最简洁的语言代码,跟我一起啃完它!


一、术语

1.声明式

简单来说,告诉编译器这个东西的名字和类型。

extern int x;
std::size_t numDigits(int number);
class Widget;
....

2.签名式

参数和返回类型

例如上面函数的std::size_t

3.定义式

对对象来说就是编译器为此对象播发内存的地点;对函数函数模板来说就是代码本体。

4.初始化

(1)给与对象初始化值。
(2)对构造函数初始化加上explicit可以防止其被执行隐士类型转换。
(3)拷贝构造函数:以同类型对象来初始化自我对象
(4)拷贝复制运算符 :=号也可以调用拷贝构造函数(**3和4区别:**如果=号传给一个新对象,就是拷贝构造,不是新对象就是赋值运算符)对于值传递来说,passby-reference to const是比价好的选择,条款20;

5.STL

标准模板库不多说了。

6.undefined behavior(不明确行为)

例如数组越界,空指针取值等等。记住,不明确(未定义)的行为结果是不可预期的。

int* p= 0;//也可以是nullptr NULL,nullptr是C++11标准规定的建议都用它
std::cout<< *p;//对空指针取值导致不明确行为

7.interface接口

C++不像java那些语言提供interfaces接口元素。所以这里说的接口可能只是,一个函数的签名signature,或者class的一个可访问元素。

二、命名习惯

这部分作者强调习惯使用什么to什么的形式,例如:

Widget* pw;//pw表示ptr to Widget

就是这么简单

三、关于线程

先说历史问题,当C++被全世界关注的时候,多线程 程序(multithread)还不存在,真尴尬哈哈哈哈。
但现在存在了,所以本书的焦点放在了标准可移植性的C++,但不能忽略线程安全性。

四、TR1和Boost

之后的条款54针对TR1,55针对Boost

前者置于tr1内,后者std。当然可以选择直接跳到最后看这两个部分。但我还是选择按顺序记录分享。


总结

导读这就没了,是不是很简单,之后按章节继续以最简单的语言讲解。
注意:条款指的就是规划,仅此而已。
总共九节,每节按书中顺序分享,有的长的章节七八个条款,有的短的章节三四个条款。
每节十分带你快速掌握,给个关注呗。

十分钟带你解读Effective C++(导读)相关推荐

  1. 十分钟带你理解Kubernetes核心概念

    原文地址:http://www.dockone.io/article/932 十分钟带你理解Kubernetes核心概念 本文将会简单介绍Kubernetes的核心概念.因为这些定义可以在Kubern ...

  2. 十分钟带你打造unity3d第一人称射击

    那抱歉,上次那个Unity+kinect还没有更新,最近在深一步研究,不久将更新(绝对不负众望)!现在进入正题,十分钟带你打造unity3D第一人称射击游戏! 看完本篇博客,你将学会第一人称控制,粒子 ...

  3. 简单易懂!十分钟带你了解:统计学到底是干什么的

    CDA数据分析师 出品 编译:Mika [导读] 统计学在我们的日常生活中无处不在,它有助于我们更好地了解世界,并做出更好的决策. 在今天的内容里,我们将带你用十分钟了解:统计学到底是关于什么的一门学 ...

  4. 这是我见过最好的Python教程:十分钟带你认识Python

    这篇文章主要介绍了简洁的十分钟Python入门教程,Python语言本身的简洁也使得网络上各种Python快门入门教程有着很高的人气,本文是国内此类其中的一篇,需要的朋友可以参考下 [简介] Pyth ...

  5. 移动端视频开发通过什么方式实现直播?十分钟带你快速了解

    原文链接:https://www.jianshu.com/p/92b71382724f 本专栏专注分享大型Bat面试知识,后续会持续更新,喜欢的话麻烦点击一个关注 现在的移动端的音视频这些在近段时间非 ...

  6. 依赖 netty spring_十分钟带你了解Spring的七大知识点,程序员必了解

    Spring框架自诞生以来一直备受开发者青睐,有人亲切的称之为:Spring 全家桶.它包括SpringMVC.SpringBoot.Spring Cloud.Spring Cloud Dataflo ...

  7. 一分钟带你解读光纤收发器,秒懂(一)

    什么是光纤收发器?你了解它的应用和特点吗?今天易天光通信就带大家了解一下什么是光纤收发器. 光纤收发器是一种将短距离的以太网电信号和长距离的光信号进行相互转换的通信设备,可确保数据包在两个网络间顺畅传 ...

  8. [k8s] 第一章 十分钟带你理解Kubernetes核心概念

    本章节主要介绍应用程序在服务器上部署方式演变以及kubernetes的概念.组件和工作原理. 应用部署方式演变 在部署应用程序的方式上,主要经历了三个时代: 传统部署:互联网早期,会直接将应用程序部署 ...

  9. 给我十分钟带你过完java多线程所有基础知识

    目录: 1.并发并行与线程进程 2.认识CPU和主线程 3.多线程的三种创建方式 4.三种创建多线程方式的进一步探究和对比 5.匿名内部类的多线程创建 6.多线程内存的分析 7.深度了解线程run() ...

  10. 原码一位乘法器设计_十分钟带你彻底搞懂原码、反码、补码

    点击上方"程序员大白",选择"星标"公众号 重磅干货,第一时间送达 编辑 | 程序员大白公众号来源丨https://www.cnblogs.com/zhangz ...

最新文章

  1. Android开发--AsyncTask异步任务(一)
  2. 如何创建SAP Cloud Platform Process Integration runtime服务
  3. Linux 命令之 locate -- 文件查找工具(查找文件/搜索文件)
  4. JDBC笔记-李伟杰版
  5. Android fb0 截屏实现
  6. Oracle 10g 高级安装图文教程(二)
  7. Tomcat引起的中文乱码问题
  8. 【mybatis】mybatis使用java实体中定义的常量,或静态方法
  9. 递增运算符练习(JS)
  10. 拓端tecdat|R语言中使用多重聚合预测算法(MAPA)进行时间序列分析
  11. 对经太空搭载的“神舟三号口服液”口服液的生产菌株进行了科学鉴定.^
  12. 三轴加速度传感器的类型、原理、特点和应用
  13. diskpart 删除磁盘OEM分区 及设置活动分区
  14. element-ui 图标太少解决方案
  15. 什么是项目集(PgMP)?
  16. 2022西安交通大学912初试经验贴 专业课133
  17. 二级c语言程序基础知识,计算机二级《C语言》基本知识点
  18. 实现Photoshop液化工具箱中向前变形工具
  19. win10应用商店闪退、打不开解决办法
  20. 荣耀开发者平台全面升级,加强分发场景服务与能力开放

热门文章

  1. java根据身份证号码计算年龄的方法(精确到日)
  2. 黑暗传说单机自动挂机_黑暗传说单机RPG
  3. 笔记本电脑的计算机配置在哪里可以找到,笔记本无线设置在哪里_笔记本电脑设置无线网络的步骤-win7之家...
  4. 浏览器自定义横向滚动条_自定义滚动条–跨浏览器解决方案
  5. 计算机控制的仓库定位系统,(边江文档教材)智能立体仓库物品定位的plc自动控制系统.doc...
  6. centos7系统时间校对(和北京时间同步)
  7. Adobe Dreamweaver CS6 安装教程详解「附pj文件」
  8. iOS 技术支持网址
  9. 笑着学Spring - (3) - Spring事务管理
  10. 关于while循环终止循环的三种方式