《Effective C++ 》学习笔记——条款01

来源:互联网 发布:linux sh 编辑:程序博客网 时间:2024/04/29 07:40


——————————————————————————————————————

| 其实,买这本书有几个月了,

| 一直想好好拜读一下,

| 但一直给自己各种借口( 欠抽啊~ )

|

| 下定决心,好好读一下!

| 把文章的重点,加上一些自己的理解,

| 写成博文,记录学习点滴也能督促下自己。

——————————————————————————————————————



****************************  一、 Accustoming Yourself to C++ **************************** 


Ok,开始吧~   Fighting!


条款01:View C++ as a federation of languages


第一部分,正如章题所言,

先要让自己习惯C++


首先,正确理解C++,

如果把C++ 当做一门语言,是否过于繁杂,让你无从下手呢?

所以,作者第一个条款就说:

  将C++ 看做一个语言联邦

如今的C++是个 multiparadigm programming language ( 多重范型编程语言 )

它同时支持

—— procedural (过程形式)

—— object-oriented (面向对象形式)

—— functional (函数形式)

—— generic (泛型形式)

—— metaprogramming (元编程形式 )

的语言。


因此,我们最好将C++ 看做是一个语言联邦而非单一的语言,

当然,分成联邦后,分出来几个次级语言来理解,

很幸运,C++主要可以用4个次语言来解释:

—— C

说到底,C++还是以C为基础。 

{block(区块)、statements(语句)、preprocessor(预处理器)、built-in data types(内置数据类型)、

arrays(数组)、pointers(指针) 等统统来自C }

许多时候,C++对问题的解法其实不过就是较高级的C解法,之前大一甚至大二时候,真心感觉C和C++的区别不是很大,就一个iostream 和 stdio.h 这两个导致输入输出流的区别,然后就是C 没有class 没有pointers 。现在就不同了。

—— Object-Oriented C++

这部分也就是让C 配上 类所诉求的那般。拥有着:classes(包括构造和析构函数)、encapsulation(封装)、inheritance(继承)、polymorphism(多态)、virtual函数等,这一部分是面向对象的设计在C++上最直接的显示。

—— Template C++

这是C++ 泛型编程部分。后面条款会有对这块的详细说明。

—— STL 

STL是一个template程序库,它对 containers(容器)、iterator(迭代器)、algorithm(算法)以及function objects(函数对象)的规约有极佳的紧密配合与协调。


因此,C++并不是一个带有一系列规则的一体语言,而是主要有4个次语言而组成的联邦,每个次语言都有自己的规约。


最最重要的是:C++高效编程守则会视情况二变化,取决于你使用C++的哪一个部分。



end...

0 0
原创粉丝点击