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++其实容易了解的多。


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

  • 5
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Lei宝啊

觉得博主写的有用就鼓励一下吧

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值