C++的介绍与认识
前言
学习了C语言的知识,今天小编将进军C++的知识,本篇博客可能略微枯燥,主要是对C++的相关介绍和认识,以及学习路线,下节将正式进入C++的学习。
1.什么是C++
C++起源于C语言,但通过引入面向对象编程(OOP)和泛型编程的特性,使其功能更为丰富和灵活。它被广泛应用于系统/应用程序开发、游戏开发、嵌入式系统等领域,因其性能优越和可扩展性而受到程序员的青睐。
2.C++的发展历史
C++的起源可以追溯到1979年,当时Bjarne Stroustrup(本贾尼·斯特劳斯特卢普,这个翻译的名字不同的地方可能有差异)在贝尔实验室从事计算机科学和软件工程的研究工作。面对项目中复杂的软件开发任务,特别是模拟和操作系统的开发工作,他感受到了现有语言(如C语言)在表达能力、可维护性和可扩展性方面的不足。
1983年,Bjarne Stroustrup在C语言的基础上添加了面向对象编程的特性,设计出了C++语言的雏形,此时的C++已经有了类、封装、继承等核心概念,为后来的面向对象编程奠定了基础。这一年该语言被 正式命名为C++。
在随后的几年中,C++在学术界和工业界的应用逐渐增多。一些大学和研究所开始将C++作为教学和研 究的首选语言,而一些公司也开始在产品开发中尝试使用C++。这一时期,C++的标准库和模板等特性 也得到了进一步的完善和发展。
C++的标准化⼯作于1989年开始,并成立了一个ANSI和ISO(International Standards
案。在该草案中,委员会在保持斯特劳斯特卢普最初定义的所有特征的同时,还增加了部分新特征。
在完成C++标准化的第一个草案后不久,STL(Standard Template Library)是惠普实验室开发的一系 列软件的统称。它是AlexanderStepanov、Meng Lee和David R Musser在惠普实验室工作时所开发出来的。在通过了标准化第一个草案之后,联合标准化委员会投票并通过了将STL包含到C++标准中的提议。STL对C++的扩展超出C++的最初定义范围。虽然在标准中增加STL是个很重要的决定,但也因此延缓了C++标准化的进程。
3.C++参考文档
https://legacy.cplusplus.com/reference/
https://zh.cppreference.com/w/cpp
https://en.cppreference.com/w/
说明:第一个链接不是C++官方文档,标准也只更新到C++11,但是以头文件形式呈现,内容比较易看好懂。后两个链接分别是C++官方文档的中文版和英文版,信息很全,更新到了最新的C++标准,但是相比第一个不那么易看;几个文档各有优势,可以结合着使用。
4.C++重要性
4.1C++特点
1. 高性能和效率
C++的一个显著特点是其高性能和高效性。通过直接访问硬件和内存,C++允许开发者编写优化的代码,从而实现出色的运行速度和资源管理。这使得C++在需要高性能计算的领域中,如游戏开发、图形渲染和科学计算,成为首选的编程语言。
2. 面向对象编程
4. 标准库(STL)
C++标准库(STL)提供了丰富的工具集,包括各种容器(如vector、map、set)和算法(如排序、查找)。STL极大地简化了数据管理和操作,使开发者能够专注于核心业务逻辑,而无需从头实现复杂的数据结构和算法。
5. 广泛的应用领域
C++在多个领域中都有着广泛的应用:
6. 社区和生态系统
4.2编程语言排行榜
Google、Bing、Yahoo!)以及WikIPedia、Amazon、YouTube和Baidu(百度)统计出排名数据,只是反映某个编程语言的热门程度,并不能说明一门编程语言好不好,或者一门语言所编写的代码数量多少。
3. PC客户端开发。一般是开发windows上的桌面软件,⽐如WPS之类的,技术栈的话⼀般是C++和QT,QT 是一个跨平台的 C++图形用户界面(Graphical User Interface,GUI)程序。
5. 游戏引擎开发。很多游戏引擎就都是使用C++开发的,游戏开发要掌握C++基础和数据结构,学习图形学知识,掌握游戏引擎和框架,了解引擎实现,引擎源代码可以学习UE4、Cocos2d-x等开源引擎实现
6. 嵌入式开发。嵌入式把具有计算能力的主控板嵌入到机器装置或者电子装置的内部,通过软件能够控制这些装置。比如:智能手环、摄像头、扫地机器人、智能音响、门禁系统、车载系统等等,粗略⼀点,嵌入式开发主要分为嵌入式应用和嵌入式驱动开发。
7. 机器学习引擎。机器学习底层的很多算法都是用C++实现的,上层用python封装起来。如果只想准备数据训练模型,那么学会Python基本上就够了,如果想做机器学习系统的开发,那么需要学 会C++。
8. 测试开发/测试。每个公司研发团队,有研发就有测试,测试主要分为测试开发和功能测试,测试开发一般是使用一些测试工具(selenium、Jmeter等),设计测试用例,然后写⼀些脚本进行自动化测试,性能测试等,有些还需要自行开发一些测试用具。功能测试主要是根据产品的功能,设计测试用例,然后手动的方式进行测试。
5.C++学习指南
1. 基础知识
运算符:包括算术运算符、逻辑运算符和比较运算符的使用方法。
2. 面向对象编程(OOP)
重要的OOP概念:
继承与多态:掌握如何建立继承关系,派生类的定义,以及多态如何实现基类指针的多种形态。
3. 泛型编程
4. 标准库(STL)
结束语
相信通过本篇博客,大家对C++有了进一步的理解和认识,最后感谢大家的阅读与支持!!!
Ongwu博客 版权声明:以上内容未经允许不得转载!授权事宜或对内容有异议或投诉,请联系站长,将尽快回复您,谢谢合作!