?!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> C++语言
<th id="rrthl"></th>
    <form id="rrthl"><th id="rrthl"><th id="rrthl"></th></th></form>
      <noframes id="rrthl">
        <noframes id="rrthl">

        <address id="rrthl"></address>

        <noframes id="rrthl"><address id="rrthl"><nobr id="rrthl"></nobr></address>

          首页 >> 网络营销词典 >> 互联网基础知识FAQ >> C++语言

          C++语言[编辑]


          C++发展历史简单介绍  C语言之所以要起名?ldquo;C”,是因为它是主要参考那个时候的一门叫B的语言,它的设计者认为C语言是B语言的进步,所以就起名为C语言;但是B语言并不是因为之前还有个A语言,而是B语言的作者为了纪念他的妻子,他的妻子名字的第一个字母是B?当C语言发展到顶峰的时刻,出现了一个版本叫C with Class,那就是C++最早的版本,在C语言中增加class关键字和类,那个时候有很多版本的C都希望在C语言中增加类的概念;后来C标准委员会决定为这个版本的C起个新的名字,那个时候征集了很多种名字,最后采纳了其中一个人的意见,以C语言中的++运算符来体现它是C语言的进步,故而叫C++,成立了C++标准委员会?/p>

            美国AT&T贝尔实验室的本贾?middot;斯特劳斯特卢普(Bjarne Stroustrup)博士在20世纪80年代初期发明并实现了C++(最初这种语言被称?ldquo;C with Classes”)。一开始C++是作为C语言的增强版出现的,从给C语言增加类开始,不断的增加新特性。虚函数(virtual function)、运算符重载(operator overloading)、多重继承(multiple inheritance)、模板(template)、异常(exception)、RTTI、命名空间(name space)逐渐被加入标准?998年国际标准组织(ISO)颁布了C++程序设计语言的国际标准ISO/IEC 1988-1998。C++是具有国际标准的编程语言,通常称作ANSI/ISO C++?998年是C++标准委员会成立的第一年,以后?年视实际需要更新一次标准,下一次标准更新原定是?009年,目前我们一般称该标准C++0x,但是由于对于新特性的争端激烈,除了在Technical Report 1(tr1)中的新增修改被基本确定外,完整的标准还遥遥无期。况且遗憾的是,由于C++语言过于复杂,以及经历了长年的演变,直到现在?010年)都没有有一个编译器完全符合这个标准?/p>

            目前最符合和接近C++标准的编译器有为 GNU GCC 4.6.1 ?Visual Studio 2010 sp1 等?/p>

            另外,就目前学习C++而言,可以认为他是一门独立的语言;他并不依赖C语言,我们可以完全不学C语言,而直接学习C++。根据《C++编程思想》(Thinking in C++)一书所评述的,C++与C的效率往往相差在正?%之间。所以有人认为在大多数场合C++ 完全可以取代C语言(然而我们在单片机等需要谨慎利用空间、直接操作硬件的地方还是要使用C语言)?/p>

          子语言

            根据Effective C++第三版第一条款的描述,现在C++由以下四?ldquo;子语言”组成?/p>

            1、C子语言。C++支持C语言的几乎全部功能,主要是c89的部分,在语法上与C语言仅有极微妙的差别(如括号表达式的左右值性,具体请参考C++标准文献)?/p>

            2、面向对象的C++语言。C++语言原本不具备面向对象的设计功能,然而随着面向对象编程的概念的提出以及如Java等语言的发展成熟,C++语言也开发出了支持面向对象功能的版本.

            3、泛型编程语言。C++强大(但容易失控的)模板功能使它能在编译期完成许多工作,从而大大提高运行期效率?/p>

            4、STL(C++标准模板库,Standard Template Library)。随着STL的不断发展,它已经逐渐成为C++程序设计中不可或缺的部分,其效率可能比一般的native代码低些,但是其安全性与规范性使它大受欢迎?/p>

            此外,包含在TR1等中的C++0x将实现的新功能在开发和测试中?/p>

          语言发展

            C++语言发展大概可以分为三个阶段?/p>

            第一阶段?0年代?995年。这一阶段C++语言基本上是传统类型上的面向对象语言,并且凭借着接近C语言的效率,在工业界使用的开发语言中占据了相当大份额;

            第二阶段?995年到2000年,这一阶段由于标准模板?STL)和后来的Boost等程序库的出现,泛型程序设计在C++中占据了越来越多的比重性。当然,同时由于Java、C#等语言的出现和硬件价格的大规模下降,C++受到了一定的冲击?/p>

            第三阶段?000年至今,由于以Loki、MPL等程序库为代表的产生式编程和模板元编程的出现,C++出现了发展历史上又一个新的高峰,这些新技术的出现以及和原有技术的融合,使C++已经成为当今主流程序设计语言中最复杂的一员?/p>

          C++入门

            C++是一种语言,仅仅是它的语法、特性、标准类库就已经是一门非常高深的课程,所以在开始学习的时候,必须先要打好基础。在市面上有很多Visual C++的书,虽然其中可能会?-2章来介绍C++的基本特性,但是那绝对不会让你入门。因此,初学者学习C++应该选择针对C++语言本身的书籍,而不能是针对Visual C++、MFC或者Windows API的?/p>

            学习C++应该由易至难,循序渐进。以前经常有人说学习C++之前应该学习C语言。事实上那不是必须的,C++和C语言虽然有关系,但仍然是两种不同的语言。当然,在学习C++之前学习过其他编程语言是很有好处的。那会使学习C++的速度更快,毕竟很多计算机语言的概念都是相通的。而对于零基础的初学者来说,则是应该静下心来,不要急躁。要成为C++的高手,不是那么容易的,必须要花很大的努力?/p>

            从入门教材的选择上,主要看学习者的自身情况。如果已经有过学习高级语言的经历,那么推荐使用谭浩强的《C++程序设计》。注意是04年版的,06年版的那本书是阉割版,上来就面向对象。虽然说C和C++是相似的,但是前面已经说了,C和C++应该作为两种语言来学习,所?6年的那本内容就稍微欠缺一点了。谭浩强04版的这本书内容比较规整的,条理也很清晰。如果有过其他高级语言的基础,那么估计半年就能对C++的概况有个了解了。谭浩强老师的书已经成为了全国各大高等院校的教科书,是比较受到认可的?/p>

            如果是从零基础开始学C++,那么推荐使用潘嘉杰的《易学C++》。这本书?008年出的新书,听说是个学生在读书的时候写的。这本书网上有下载免费的电子版。这本书主要就是针对初学者的,讲得也比较生动有趣,比较提得起学习的兴趣。所以没有基础的初学者选这本书也是不错的,就是想要很快成为高手,可能看这本书还不够?/p>

            至于看完入门的书之后,就应该看一些高层次的书了。比如The C++ Programming Language和C++ Primer,同时也可以向STL、MFC、API等各个方向发展。如果对别的语言感兴趣,还能去看看C#和Java,它们和C++从语法和很多概念上都是类似的?/p>

          C++的设计原?/p>

            · C++设计成静态类型、和C同样高效且可移植的多用途程序设计语言?/p>

            · C++设计成直接的和广泛的支援多种程序设计风格(程序化程序设计、资料抽象化、面向对象程序设计、泛型程序设计)?/p>

            · C++设计成给程序设计者更多的选择,即使可能导致程序设计者选择错误?/p>

            · C++设计成尽可能与C兼容,籍此提供一个从C到C++的平滑过渡?/p>

            · C++避免平台限定或没有普遍用途的特性?/p>

            · C++不使用会带来额外开销的特性?/p>

            · C++设计成无需复杂的程序设计环境?/p>

            出于保证语言的简洁和运行高效等方面的考虑,C++的很多特性都是以库(如STL)或其他的形式提供的,而没有直接添加到语言本身里。关于此类话题,C++之父的《C++语言的设计和演化?里做了详尽的陈述?/p>

          参考资料: http://www.www.thejeezloueez.com/machengwei
          扩展阅读?http://www.www.thejeezloueez.com/machengwei
          相关词条?

          http://www.www.thejeezloueez.com/wiki/244.htm

          合作编辑?

          网络营销词典内容均由网友提供,仅供参考。如发现词条内容有问题,请发邮件至info # www.thejeezloueez.com?/p>

          词条信息

          浏览次数?span id="_wiki_visit_Count">189

          编辑次数?span id='_wiki_edit_Count'>0历史版本

          创建者: 马成?/a>

          最近更新:2011/6/1 10:47:05

          词条分类导航

          关于网络营销教学网站| 本站动?/a>| 网站地图| 版权声明| 联系作?/a>| 问题和建?/a>|

          版权声明:网络营销教学网站所有作品版权均归原作者所有,未经书面许可,严禁任何形式的转载/转贴、出版、篡改、汇编、编译等?/p>

          ղƱ