摘要:【C和C++有相似点,那啥样的代码风格是C++的呢C++又比较适合解决啥样的问题|C++委员会的】因为众所周知的汗青典故,C++是大年夜C成长而来,然则,他们两者之间并不是兼容关系,他们其实是两种不合的说话,大年夜编程思惟(一个面向过程,一个面向对象)到具体语法(C++中包含了很多现代开辟说话的特点,诸如模板,异常等等),两者都千差万别,不要...
按关键词阅读:
C++委员会的家伙提倡的C++风格就是要用OO的思路为问题空间建模,还有尽量不要使用指针。C++适合解决同时需要高性能和OO良好设计的问题。
■网友
谢谢你的邀请不过,我不太明白你这里的代码风格,指的是什么?编码风格,或者其他?因为众所周知的历史典故,C++是从C发展而来,但是,他们两者之间并不是兼容关系,他们其实是两种不同的语言,从编程思想(一个面向过程,一个面向对象)到具体语法(C++中包含了很多现代开发语言的特性,诸如模板,异常等等),两者都千差万别,不要只是因为名字中都带有个C,就认为是一家人。那么,既然有了C了,何必还要再来个C++?相对于C,C++又比较适合解决什么样的问题?要回答这个问题,我们很有必要回顾一下C++创建的历史。在《我的第一本C++书》中,有这样一段记录:1.2.2 从C到C++语言的发展是一个逐步递进的过程。1979年4月,同样来自贝尔实验室的本贾尼·斯特劳斯特卢普(Bjarne Stroustrup)博士与同事接受了一项工作——尝试分析UNIX的内核。但当时没有合适的工具能够有效地分析其内核,将内核模块化,所以斯大叔(不是斯达舒哦)的工作进展很慢。同年10月,斯大叔设计了一个可以运行的预处理程序,称之为“Cpre”,它为C语言加上了类似Simula语言的类机制。在这个过程中,斯大叔萌生了创建一门新语言的想法。贝尔实验室对这个想法很感兴趣,就让斯大叔等人组成一个开发小组,专门进行研究。当时这门新语言不是叫C++,而是叫C with class,它只是C语言的有效扩充,后来才更名为C++。当时C语言已经在所有程序设计语言中居于老大的地位,要想发展一种新的语言,最强大的竞争对手就是C语言。C++当时面临两个挑战:第一,C++要在运行时间、代码紧凑性和数据紧凑性方面与C语言相媲美;第二,C++要尽量避免在语言应用领域的限制。在这种情况下,最简单的方法是继承C语言的一些特性,让C++语言具备C语言的各种优点。斯大叔为了突破C语言的种种局限,借鉴了其他程序设计语言的优点,实践了编程界由来已久的“拿来主义”。例如:C++从Simula继承了类的概念;从Algol68继承了操作符重载、引用以及在任何地方声明变量的能力;从BCPL获得了“//”注释;从Ada得到了模板、名字空间;从Ada、Clu和ML取来了异常处理等。通过这一系列动作,C++具备了多种程序设计语言的优秀基因,既系出名门,又博采众家之长,从而完成了从C到C++的进化。其后,C++又经历了长期的发展,随着标准模板库(Standard Template Library,STL)的出现、泛型编程的发展,C++在2000年左右出现了发展史上的一个高峰,而到了2011年,C++的最新标准C++11正式公布,在C++的易用性和性能上作了大量改进,增加了线程库等现代软件开发所需要的内容,这也使得C++成为程序设计语言中的无冕之王。很多朋友都是从C语言转入到C++语言的学习的,你们拥有了C语言的基础,同时又因为C语言和C++语言之间天然的血缘关系,这使得你们可以对C++语言轻松上手,以前的关于C语言的知识和编程经验在C++语言中也继续有效。但是,C语言和C++语言毕竟是两门不同的编程语言,它们虽然有一定的血缘关系,但是两者之间还是有本质的不同,这就是C++比C多出来的两个“+”号。如果说其中一个“+”号代表了C++的面向对象思想的类机制,那么另外一个“+”号则代表了C++的标准模板库,正是这两个“+”号将两者区分开来。所以,如果你是一个有C语言经验的程序员来学习C++语言,既需要复用自己以前的关于C语言的知识和经验,同时也应该更新观念,将学习和理解的重点放在面向对象思想的类机制和标准模板库这两个方面,这样才能学习到C++语言的精髓。知道更多:C++大事记1983年8月,C++首次投入使用,开天辟地。1983年12月,Rick Mascitti建议将C with class更名为CPlusPlus,亦即C++。C++从此名正言顺。同年,C++吸收了很多新的特性,其中包括虚函数、函数名和操作符重载、常数、用户可控制的自由空间储存区、改良的类型检查及新的双斜线“//”单行注释风格。1985年2月,C++ Release 1.0发布。1985年10月,斯特劳斯特卢普博士完成了经典巨著《The C++ Programming Language》的第一版。1989年,C++ Release 2.0发布。它引入了多重继承、抽象类、静态成员函数、常数成员函数及成员保护等新特性。C++中面向对象的思想更加成熟。1990年3月,第一次ANSI X3J16技术会议在新泽西州召开。1990年7月,C++加入模板。1990年11月,C++加入异常处理。1991年6月,《The C++ Programming Language》第二版完成。1991年6月,第一次ISO WG21会议在瑞典召开。1993年3月,在俄勒冈州加入运行时类型识别。1993年7月,在德国慕尼黑加入名字空间。1994年8月,ANSI/ISO委员会草案登记。1997年7月,《The C++ Programming Language》第三版完成。1998年10月,ISO标准通过表决被接受。1998年11月,ISO标准得到批准。同年,C++11公开,它是目前计划中的C++编程语言的新标准,将取代现行的C++标准ISO/IEC 14882。2003年,在官方公布1998标准的5年之后,C++标准委员会处理缺陷报告,并于2003年发布了一个C++标准的修正版本,称为C++03。新的标准包含了核心语言的新功能,同时扩展了C++标准程序库,合并了大部分的C++ Technical Report 1程序库。2005年,公布一份名为Library Technical Report 1(简称TR1)的技术报告。虽然它不属于官方标准,但它所提出的几个扩展建议有望成为新C++标准的一部分。目前,几乎所有流行的C++编译器都已经支持TR1。2008年10月,C++11的最新报告N2800公开。2011年8月,C++11(先前被称作C++0x)获得ISO/IEC一致通过;同年9月新的C++标准C++11正式出版,C++从此进入一个新的时代。C++11 UNIX,操作系统的一种,是美国AT\u0026amp;T公司于1971年在PDP-11上运行的操作系统。具有多用户、多任务的特点,支持多种处理器架构。因其具有高安全性和高性能的特点,如今已成为主流的服务器操作系统。而在后文我们将要了解到的Linux操作系统,也同样是一个类UNIX操作系统。 预处理程序,就是在源程序文件被编译之前,对其进行预先处理的程序。比如,引入源文件中所使用的头文件,展开源文件中定义的宏等等。源文件经过预处理程序处理之后,再才通过编译器编译成可执行的程序。一种抽象和封装的机制。它将描述一个事物的数据抽象成类的属性,而将对这些数据的操作抽象成类的方法,然后将属性和方法封装成类(class)的概念,以此来表示这个事物。读史可以使人明智。了解事情的来龙去脉,可以帮助我们更好的认识理解事物。希望这一段历史,可以让你对C++有更加深刻的认识。ps,可能有一些修改的痕迹,请见谅
来源:(未知)
【】网址:http://www.shadafang.com/c/gx0423a4T12020.html
标题:C和C++有相似点,那啥样的代码风格是C++的呢C++又比较适合解决啥样的问题