C++语言的历史
C语言有很多优点,也有很多不足。如对类型匹配的检查不够严格、基本没有支持代码重用的机制、不支持面向对象等。这使得在用C语言开发大规模的软件时,维护和扩充都比较困难。
1980 年,贝尔实验室的 Bjarne Stroustmp 开始对C语言进行改进,为其加入面向对象的特性。最初,这种新语言被称为 带类的C(C with Classes) 。
1983 年, 带类的C 加入虚函数、函数和运算符重载、引用等概念后,正式定名为 C++(C plus plus) 。
1985 年,C++ 最权威的著作、由 Bjarne Stroustmp 撰写的《C++程序设计语言》(The C+ + Programming Language)第一版发布。
1989 年,C++ 2.0 版发布,加入了多重继承、抽象类、静态成员、常量成员函数等概念。1990 年,又加入了模板、异常处理、名字空间等机制。
1994 年,ANSI C++ 标准发布。
1998 年,ANSI(美国国家标准协会)和 ISO(国际标准化组织)联合发布了至今使用最为广泛的 C++ 标准,称为 C++ 98。C++ 98 最为重大的改进就是加入了 标准模板库 (Standard Template Library, STL),使得 泛型程序设计 成为 C++ 除 面向对象 外的另一主要特点。
2003 年,ISO 的 C++ 标准委员会又对 C++ 略做了一些修订,发布了 C++ 03 标准。C++ 03 和 C++ 98 的区别对大多数程序员来说可以不必关心。
2005 年,一份名为 Library Technical Report 1(简称 TR1)的技术报告发布,为 C++ 加入了正则表达式、哈希表等重要类模板。虽然 TR1 当时没有正式成为 C++ 标准,但如今的许多 C++ 编译器都已经支持 TR1 中的特性。
2011 年 9 月,ISO 通过了新的 C+ + 标准,这就是 C++11。C++11 在酝酿的过程中被称为 C++ 0x,因为 Bjame Stroustmp 原本预计它应该在 2008 年或 2009 年发布。 C++11 对 C++ 的语言特性和标准库都做了比较大的扩充,TR1 中的许多特性正式成为 C++11 标准的一部分。
当前比较流行的 C++ 编译器有 GCC、微软公司的 Visual Studio 2015、Dev C++ 等。Dev C++ 核心的编译器实际上还是 GCC,只不过是用 IDE(集成开发环境)将其包装起来,更加便于使用。Visual Studio 功能最为强大,但是体积巨大而且价格昂贵;Dev C++ 只有几十兆字节大小,而且免费。推荐读者使用这两种编译器。
本书中的程序,除非特别说明,都能在上述两种编译器中编译通过,而且运行结果相同。
有两个网站用来查看 C++ 的各种函数、模板、类的用法特别方便,它们是:
http://www.cplusplus.com
http://www.cppreference.com
在 C++ 中,头文件不再以.h结尾,例如下一节提到的头文件 iostream。一些C语言中常用的头文件在 C++ 中的名字变为去掉.h,并在开头增加字符c。例如:
#include cstdio
#include cstring
#include cstdlib
在 C++ 中,强制类型转换可以写成以下形式:
类型名(待转换的表达式)
例如,int(3.5)、double(2)、double(a) 等看起来像函数调用,比C语言中 (int)3.5、(double)a 的写法更清晰。
21496.html
cC++11C语言GCChtmlSTL相关文章
- C++STL容器string
- C++系列笔记(十)
- c++ 实现键盘钩子
- 求最大公约数和最小公倍数 -- C++ 辗转相除法
- c++获取子类窗口句柄位置_C++中各种获取窗口句柄的方法「建议收藏」
- C++反射 - 反射信息的自动生成
- c++ auto类型_auto C++
- c++实现stack_c语言输出栈中所有元素
- c++多线程入门_c语言是单线程还是多线程
- C++stl库_c++库
- C++字符串加密_c++字符串连接函数
- c++的链表-C++链表
- C/C++ 感染标志与空字节感染
- C++ 使用Socket实现主机间的UDP/TCP通信
- 【C++ 语言】Visual Studio 配置 FFMPEG 开发环境 ( VS2019 CMake 环境安装 | 下载 FFMPEG 开发包 | 配置 FFMPEG )
- 【C++ 语言】面向对象 ( 继承 | 重写 | 子类调用父类方法 | 静态多态 | 动态多态 | 虚函数 | 纯虚函数 )
- 【C++ 语言】Visual Studio 配置 POSIX 线程 ( Windows 不支持 POSIX | 配置文件下载 | 库文件说明 | 配置过程 )
- 【C++ 语言】线程安全队列 ( 条件变量 | 线程调度 )
- c++基础篇之C++ 模板
- 【C++】模板初阶
- C++继承(详解版)
- C++常对象和常成员函数详解
- #新闻拍一拍# GCC 11 将默认前端语言改为 C++ 17
- 30个深度学习库:按Python和C++等10种语言分类
- 在c和c++中实现函数回调
- 深入解析C++中的指针数组与指向指针的指针