27
2012
02

将C++视为一个组合语言

C++复杂的语法规则常常让初学者困惑不已,从c++的发展史来看,c++刚出来时,就是C with class,为是兼容C语言的语法特征,所以会有一些在现在看来很奇怪的语言。

在Effective C++第三版的第一条里,Scott Meyers建议我们把C++理解为一个联邦语言,在他的某个次语言中,各种守则都相对简单,直观易懂,并且容易记住。

为了理解C++,我们将c++理解为以下四个语言:

C语言,说到底c++还是以C语言为基础的,内置数据类型,数组,语句,区块,指针,这些都来自C。C语言中没有模板,没有异常,没有重载。。。

Object-Oriented C++,这部分就是C with Ckasses所诉求的,类,封装,继承,多态,virtual函数,等,以面相对象的思想来看这一部分,则容易理解很多。

Template C++,这是C++的泛型编程部分,也是很多程序员经验最少的部分,这部分主要有函数模板,类模板。

STL。STL是个模板类库,这个和这门语言相对会独立一些,不是编译器支持的某种能力,相当于Java类库,.Net Freamework.STL主要包含容器,迭代器,算法,函数对象,可以简化日常的编程工作。

当我们以这种方式来理解C++语言时,会让我们以前感觉杂乱,困惑的问题简化一些。

« 上一篇下一篇 »

相关文章:

__stdcall和cdecl调用约定  (2012-2-27 0:35:11)

VS2008非托管c++访问webservice服务  (2011-6-22 0:12:7)

从C++到Java,10年技术生涯的几点思考  (2011-4-20 19:56:27)

c++经典面试题(一)  (2008-11-23 17:42:53)

c++经典面试题  (2008-11-23 17:32:25)

瑞星面试  (2008-11-23 17:24:21)

《C++高效编程》学习笔记  (2008-11-23 17:19:35)

数据类型转换:static_cast,const_cast等用法  (2008-11-23 17:14:20)

解读求π的怪异代码,只用三行算出800位  (2008-10-21 23:25:22)

JAVA和C++的区别  (2008-10-18 16:36:11)

发表评论:

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。