C++,C语言的增强版

开发 开发工具
C++是一种使用非常广泛的电脑程序设计语言,贝尔实验室的比雅尼·斯特劳斯特鲁普博士在20世纪80年代发明并实现了C++。起初,这种语言被称作“C with Classes”,作为C语言的增强版出现。

C++是一种使用非常广泛的电脑程序设计语言。它是一种静态数据类型检查的,支持多范型的通用程序设计语言。C++支持过程化程序设计、数据抽象化、面向对象程序设计、泛型程序设计、基于原则设计等多种程序设计风格。

[[18091]]

贝尔实验室的比雅尼·斯特劳斯特鲁普博士在20世纪80年代发明并实现了C++。起初,这种语言被称作“C with Classes”(“包含类的C语言”),作为C语言的增强版出现。随后,C++不断增加新特性。虚函数、操作符重载、多重继承、模板、异常处理、RTTI(Runtime type information)、命名空间(namespace)逐渐纳入标准。

1998年国际标准组织(ISO)颁布了C++程序设计语言的国际标准ISO/IEC 14882-1998。另外,就目前学习C++而言,可以认为它是一门独立的语言;它并不依赖C语言,我们可以完全不学C语言,而直接学习C++。根据《C++编程思想》(Thinking in C++)一书所评述的,C++与C的效率往往相差在正负5%之间。所以有人认为在大多数场合中,C++完全可以取代C语言。

C++语言发展大概可以分为三个阶段:第一阶段从80年代到1995年。这一阶段C++语言基本上是传统类型上的面向对象语言,并且凭借著接近C语言的效率,在工业界使用的开发语言中占据了相当大份额;第二阶段从1995年到2000年,这一阶段由于标准模板库(STL)和后来的Boost等程序库的出现,泛型程序设计在C++中占据了越来越多的比重性。

当然,同时由于Java、C#等语言的出现和硬件价格的大规模下降,C++受到了一定的冲击;第三阶段从2000年至今,由于以Loki、MPL等程序库为代表的产生式编程和模板元编程的出现,C++出现了发展历史上又一个新的高峰,这些新技术的出现以及和原有技术的融合,使C++已经成为当今主流程序设计语言中最复杂的一员。

C++的特色

和C语言相比,C++引入了更多的特性,包括:陈述性声明,类似函数的强制转型,new/delete操作符,布林类型,参考类型,默认参数,函数重载,命名空间,类(包括所有和类相关的特性,如继承、成员函数、虚函数、抽象类和建构子),操作符重载,模板,::操作符,异常处理和运行时期识别。

和普遍认为的相反,C++不是第一个引入const关键字的。Const是在正式引入C语言不久之后,才被C++采用。

C++在某些案例中(见下“与C不兼容之处”),进行比C还要多的类型检查。以“//”起始作为注解起源自C的前身BCPL,而后被重新引入到C++。

C++的一些特性,C不久之后也采用了,包括在for循环中声明,C++风格的注解(使用//符号,和inline,虽然C99定义的inline关键字与C++的定义不兼容。不过,C99也引入了不存在于C++的特性,如:variadic macros,和以数组作为参数的较佳处理;某些C++编译器可能实现若干特性,以作为扩展,但其余部分并不符合现存的C++特性)

一个常见的混淆其实只是一个微妙的术语问题:由于它的演化来自C,在C++中的术语对象和C语言一样是意味着存储器区域,而不是类的实例,在其它绝大多数的面向对象语言也是如此。举例来说,在C和C++中,语句int i;定义一个int类型的对象,这就是变量的值i将在赋值时,所存入的存储器区域。

语言特性

◆操作符

◆预处理器

◆预处理器指令和宏

◆模板

◆对象

◆封装

◆继承

◆多态

【编辑推荐】

  1. PHP,最流行的Web开发语言
  2. Java,编程语言世界里的常胜将军
  3. 汇编语言:从机器语言到高级语言的进化
  4. 机器语言:程序员需要一双灵巧的手
  5. 人类第一次编程开发:200倍效率提升为战争
责任编辑:王晓东 来源: 51CTO
相关推荐

2021-01-27 10:01:46

MySQL数据库SQLX

2023-09-03 19:43:46

htmxJavaScript网络

2020-12-02 09:51:06

C++语言学习

2010-01-15 17:38:37

C++语言

2022-09-21 10:50:43

pickledillPython

2013-05-15 09:14:01

2011-09-15 14:00:52

IOS应用SpoolInstapaper

2009-08-22 15:04:02

H3C无线路由器

2022-07-01 11:56:54

C语言C++编程语言

2010-01-22 15:30:36

C++语言

2022-10-08 08:15:55

GScriptGo 语言

2011-05-26 17:55:08

2009-01-05 10:30:23

赛门铁克Veritas数据中心

2024-02-21 14:55:19

C++语言编程

2010-01-12 18:00:30

Visual C++

2009-03-17 08:56:57

Visual StudVS2010C++

2015-04-21 13:37:44

Google开源CC++版

2010-01-15 14:46:20

C++语言

2010-01-14 10:34:02

C++语言

2010-01-13 17:04:36

C++语言
点赞
收藏

51CTO技术栈公众号