news 2026/5/23 15:42:35

00:C++前言

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
00:C++前言

1.1 C++简述

1、与c语言一样,c++也是在贝尔实验室诞生的,Bjarne Stroustrup(本贾尼·斯特劳斯特卢普)在20世纪80年代在这里开发了这种语言。

2、c++融合了3种不同的编程方式:

* c语言代表的过程性语言.
* c++在c语言基础上添加的类代表的面向对象语言.
* c++模板支持的泛型编程。

3、C++和C语言的关系

c++语言是在C语言的基础上,添加了**面向对象、模板**等现代程序设计语言的特性而发展起来的。两者无论是从语法规则上,还是从运算符的数量和使用上,都非常相似,所以我们常常将这两门语言统称为“C/C++”。

C语言和C++并不是对立的竞争关系:

* **C++是C语言的加强,是一种更好的C语言**。
* **C++是以C语言为基础的,并且完全兼容C语言的特性。**

c语言和C++语言的学习是可以相互促进。学好C语言,可以为我们将来进一步地学习C++语言打好基础,而C++语言的学习,也会促进我们对于C语言的理解,从而更好地运用C语言。

1.2 C++标准

1、假设为运行windows 2000的老式奔腾pc编写了一个很好用的c++程序,而管理员决定使用不同操作系统(比如说Mac OS 或 Linux)和处理器的计算机替换它。该程序是否可在新平台运行呢?当然,但是必须使用为新平台设计的c++编译器重新编译。但是是否需要修改写好的代码?如果不需要修改代码的情况下,重新编译程序后,程序依然运行良好,该程序是可移植的。

程序是否可移植性有两个问题需要解决。第一是硬件,针对特定硬件编程的程序是不可移植的。第二,语言的实现,windows xp c++ 和 Redhat Linux 或 Mac OS X对c++的实现不一定相同。虽然我们希望c++版本与其他版本兼容,但是如果没有一个公开的标准,很难做到。因此,美国国家标准局(American National Standards Institute,ANSI)在1990年设立一个委员会专门负责制定c++标准(ANSI制定了c语言的标准)。国际标准化组织(International Organization for Standardization,ISO)很快通过自己的委员会加入到这个行列,创建了联合组织ANSI/ISO,制定c++标准。

2、经过多年的努力,制定出了一个国际标准ISO/IEC 14882:1998 ,并于1998年获得了ISO、IEC(International Electrotechnical Committee,国际电工技术委员会)和ANSI的批准。这个标准就是我们经常所说的c++98。它不仅描述了已有的c++特性,还对语言进行了扩展,添加了异常、运行阶段类型识别(RTTI)、模板和标准模板库(STL).

2003年,发布了c++标准第二版(IOS/IEC 14882:2003),这一版本对第一版修订了一些错误,但并没有改变语言特性,因此c++98表示c++98/c++2003.

c++不断发展。IOS标准委员会于2011年8月批准了新标准ISO/IEC 14882:2011,该标准被称为c++11,与c++98一样c++11也新增了许多特性。

ISO c++标准还吸收了ANSI c语言标准,c++尽量做到是c的超集。意味着在理想情况下,任何有效的c程序都应该是有效的c++程序。

ANSI不仅定义了c语言,还 定义了一个ANSI c必须实现的标准c库。c++也在使用这个库,另外ANSI/ISO c++标准还提供了一个c++标准类库。、

1.3 C++的应用

* 游戏

* C++的效率是一个很重要的原因。绝大部分游戏引擎都是用c++写的
* 网络软件

* C++拥有很多成熟的用于网络通信的库,其中最具有代表性的是跨平台的、重量级的ACE库,该库可以说是C++语言最重要的成果之一,在许多重要的企业、部门甚至是军方都有应用。
* 分布式应用。
* 操作系统

* 在该领域,C语言是主要使用的编程语言。但是C++凭借其对C的兼容性,面向对象性质也开始在该领域崭露头角。
* 移动(手持)设备。
* 嵌入式系统。
* 教育与科研。
* 部分行业应用

1.4 第一个C++程序

```cpp
#include <iostream>
using namespace std; //使用std 命名空间

int main(int argc, char *argv[])
{
int a;
a = 10;
//std::cout << "a: " << a << std::endl;
cout << “hello world”<< endl;
return 0;
}
```

* #include “”; 预编译指令,引入头文件iostream
* using namespace std; 使用标准命名空间
* int a; 定义一个整型变量a
*cout << “hello world”<< endl; 和printf功能一样,输出字符串”hello wrold”

注意:

> 1、在c语言中头文件使用扩展名.h,将其作为一种通过名称标识文件类型的简单方式。但是c++得用法改变了,c++头文件没有扩展名。但是有些c语言的头文件被转换为c++的头文件,这些文件被重新命名,丢掉了扩展名.h(使之成为c++风格头文件),并在文件名称前面加上前缀c(表明来自c语言)。例如c++版本的math.h为cmath
>
> 2、namespace是指标识符的各种可见范围。命名空间用关键字namespace 来定义。命名空间是C++的一种机制,用来把单个标识符下的大量有逻辑联系的程序实体组合到一起。此标识符作为此组群的名字。
>
> std就是命名空间(名字空间)的名字, 命名空间的作用主要是为了解决日益严重的名称冲突问题。随着可重用代码的增多,各种不同的代码体系中的标识符之间同名的情况就会显著增多。解决的办法就是将不同的代码库放到不同的名字空间中。
>
> 思考:假如在项目中需要定义两个函数func, 并且都能够被其他文件所访问到该怎么办?
>
> 3、cout是c++中的标准输出流,endl是输出换行并刷新缓冲区。

文章来源与B站up:Max极客菌 文章为学习复习用途,如有不适请告知删除

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/5/23 15:41:58

亲测好用TOP8AI论文写作软件:研究生开题报告神器大测评

亲测好用TOP8AI论文写作软件&#xff1a;研究生开题报告神器大测评 学术写作工具测评&#xff1a;为什么需要一份靠谱的AI论文写作榜单 随着人工智能技术的不断发展&#xff0c;越来越多的研究生和科研人员开始依赖AI写作工具来提升论文撰写效率。然而&#xff0c;面对市场上…

作者头像 李华
网站建设 2026/5/1 7:20:45

基于微信小程序的智慧共享停车位系统

收藏关注不迷路&#xff01;&#xff01; &#x1f31f;文末获取源码数据库&#x1f31f; 感兴趣的可以先收藏起来&#xff0c;还有大家在毕设选题&#xff08;免费咨询指导选题&#xff09;&#xff0c;项目以及论文编写等相关问题都可以给我留言咨询&#xff0c;希望帮助更多…

作者头像 李华
网站建设 2026/5/22 6:12:53

多门店理发店小程序系统的强大功能,单店/多店模式自由切换

温馨提示&#xff1a;文末有资源获取方式 寻找一款既能提升顾客体验&#xff0c;又能强化内部管理&#xff0c;还能作为业务增长工具的美容美发小程序&#xff1f;以下介绍的这款源码系统&#xff0c;以其媲美SaaS产品的完整功能与私有化部署的优势&#xff0c;为行业提供了专业…

作者头像 李华
网站建设 2026/5/21 2:03:30

信创架构国产化落地:从组件适配到全链路效能提升

信创架构国产化落地&#xff1a;从组件适配到全链路效能提升 信创产业的规模化发展&#xff0c;已从“政策推动替代”进入“价值驱动落地”的关键阶段。企业推进信创建设的核心诉求&#xff0c;不再是单纯完成“国产化组件替换”&#xff0c;而是实现“全栈落地、效能升级”—…

作者头像 李华
网站建设 2026/5/16 9:31:04

matlab代码:考虑实时市场联动的电力零售商鲁棒定价策略 考虑电力零售商日前定价、日前购电、...

matlab代码&#xff1a;考虑实时市场联动的电力零售商鲁棒定价策略 考虑电力零售商日前定价、日前购电、实时能量管理、电动汽车用户需求响应和电力市场统一出清价格等因素&#xff0c;建立了考虑电动汽车不确定性的电力零售商鲁棒定价模型。 然后&#xff0c;通过线性化方法将…

作者头像 李华