Effective-C++阅读解析条款(条款一:视C++为一个语言联邦)

个人主页:Lei宝啊 

愿所有美好如期而遇


前言

博主只是将书中内容用自己的理解写了出来,术语没有那么多,而且其中很多部分理解不是很透彻,对于C++初学者来说,本专栏博客还是很有意义的,因为初学者看这本书通常不是很好理解。

视C++为一个语言联邦

C++有四个次语言,分别是C,Object-Oriented C++,Template C++,STL。如果我们单独看其中一个次语言,他的各种守则和通例都是比较简单的,但是我们从一个次语言移到另一个次语言时,守则可能会改变,我们要想更好的理解C++,最好就是将C++视为一个相关语言组成的联邦,而不是单纯就是C++。

C语言

这里博主建议在学习C++前,最好是先学习C语言,因为C++还是以C语言为基础,很多东西都是来自于C语言,剩下的是在C的基础上新增的(C++最初的名字是C with Classes),但是我们用C语言的时候,还是有些局限性,比如说什么都要我们自己写,没有方法,没有模板,没有异常,没有重载等等。

Object-Oriented C++

这部分包含的就是C++所诉求的面对对象,classes(包括构造函数,析构函数),封装,继承,多态,虚函数等等。

Template C++

这就是C++的泛型编程部分,也就是模板,书中对此描述部分博主并不是很理解,这里不多赘述。

STL

这是C++的一个模板程序库,他对于容器,迭代器,算法以及函数对象的规定有很好的配合与协调,同时有了这个库,我们再编写代码时就不需要我们像C语言一样不管什么都要自己手搓,这也是我们使用C++非常爽的一点。

我们需要做的是记住这四个次语言,当我们从某个次元切换到另一个次元时,导致高效编程守则要求我们改变策略时,不要为此感到惊讶,比如所我们对内置类型,像int,double,指针等等类型而言,值传递通常比引用传值的效率要高。

当我们从C语言部分移到C++的面向对象部分,由于我们用户自定义的构造函数和析构函数,const引用传值往往更好,在使用模板时也同样如此,因为我们甚至不会知道所处理的对象的类型。

当我们了解STL程序库时,我们就会知道,其实迭代器和函数对象都是在C语言指针上塑造出来的,只是因为各种封装我们看得不是很清楚罢了。

所以,C++其实是从四个次语言组成的联邦,每个次语言都有自己的规约,我们记住这四个次语言就会发现C++其实容易了解的多。


如果觉得博主解释的不是很清晰,可以去看原著。

相关推荐

  1. [C语言]条件编译

    2024-03-23 15:46:02       7 阅读
  2. C# —— 条件分支语句

    2024-03-23 15:46:02       8 阅读
  3. C语言条件编译详解

    2024-03-23 15:46:02       20 阅读
  4. 四:C语言-条件分支语句

    2024-03-23 15:46:02       41 阅读
  5. C语言条件编译格式

    2024-03-23 15:46:02       30 阅读

最近更新

  1. TCP协议是安全的吗?

    2024-03-23 15:46:02       16 阅读
  2. 阿里云服务器执行yum,一直下载docker-ce-stable失败

    2024-03-23 15:46:02       16 阅读
  3. 【Python教程】压缩PDF文件大小

    2024-03-23 15:46:02       15 阅读
  4. 通过文章id递归查询所有评论(xml)

    2024-03-23 15:46:02       18 阅读

热门阅读

  1. v-for=“item in arr“ 的理解

    2024-03-23 15:46:02       17 阅读
  2. 24计算机考研调剂 | 西北民族大学

    2024-03-23 15:46:02       20 阅读
  3. 面试算法-79-搜索旋转排序数组

    2024-03-23 15:46:02       16 阅读
  4. Vue 面试题(二)

    2024-03-23 15:46:02       22 阅读
  5. 003-基于Jetson Nano平台的在线二维码检测

    2024-03-23 15:46:02       22 阅读
  6. C语言判断回⽂字符串

    2024-03-23 15:46:02       18 阅读
  7. MySQL知识总结

    2024-03-23 15:46:02       18 阅读
  8. Linux - IO

    2024-03-23 15:46:02       16 阅读
  9. capl实现crc校验码计算

    2024-03-23 15:46:02       19 阅读
  10. 蓝桥杯/减肥/c\c++

    2024-03-23 15:46:02       15 阅读
  11. LeetCode算法(一) 之 Python基础

    2024-03-23 15:46:02       19 阅读
  12. 力扣-字符串的最长公共前缀

    2024-03-23 15:46:02       19 阅读
  13. 力扣由浅至深 每日一题.11 加一

    2024-03-23 15:46:02       18 阅读
  14. 前端面试题整理

    2024-03-23 15:46:02       17 阅读