您现在的位置是:首页 >学无止境 >C++概况网站首页学无止境

C++概况

turbolove 2024-06-20 18:01:02
简介C++概况

C++概况

目前业界还没有可以替换C++的语言出现。

CPP的历史

  • C++编程语言的历史可以追溯到1979,Bjarne Stroustrup创立了带类的C.顾名思义,这是C语言的超集;在1983年,语言的名字真正的编程了C++;

  • C++在最开始可以称为C语言的增强版,但是在后来,C++又引入了许多新的功能,逐步增强了C++的可用性,1998年伴随着STL标准库的诞生,一堆新的功能和特性的产生,C++标准委员会发布了第一个国际标准C++ + ISO/IEC 1488 :称为C++98;

  • 在2011年中期,C++标准(称为C++11)完成了新的标准。Boost库项目对新标准产生了相当大的影响,一些新模块直接从响应的Boost库中派生出来。

  • C++11之后,C++以每3年一版的频度发布着新的语言标准,每一版都在基本保留向后兼容性的同时,提供着改进和新功能。

CPP VS C

  • 当C++被作为C语言的超集时,有什么是C++语言可以做到而C语言不擅长的?
// CPPDemo1.cpp : 定义控制台应用程序的入口点。
//

#include "stdafx.h"

#include "stdio.h"
// C面向过程的方式
static int noisy = 0;  // 状态信息
static FILE* pFile = NULL;     // 文件指针
void trace(char* s)
{
	if (noisy)
		fprintf(pFile, "%s
", s);
	if (!pFile) { fclose(pFile);  pFile = NULL; }
}
void trace_on()
{
	noisy = 1;
}
void trace_off()
{
	noisy = 0;
}
// C++面向对象方式
class Trace {
public:
	Trace() { noisy = 1; f = stdout; }
	Trace(FILE* ff) { noisy = 1; f = ff; }
	~Trace()
	{
		noisy = 0;
		if (!f) { fclose(f);  f = NULL; }
	}
	void on() { noisy = 1; }
	void off() { noisy = 0; }
	void trace(char* s) { 
		if (noisy)
		{
			fprintf(f, "%s
", s);
		}
	}
private:
	int noisy;// 状态信息
	FILE* f;
};

int main()
{
	// C面向过程的方式
	FILE* f0;
	fopen_s(&f0, "cppdemo0.txt", "w");
	pFile = f0;
	trace_on();
	trace("hi1");
	pFile = stdout;
	trace("hi2");
	trace_off();
	pFile = f0;
	trace("hi1");
	pFile = stdout;
	trace("hi2");
	fclose(f0);

	// C++面向对象方式
	FILE* f;
	fopen_s(&f, "cppdemo1.txt", "w");
	Trace t1(f);
	t1.trace("hi1");
	Trace t2;
	t2.trace("hi2");
	t1.off();
	t1.trace("hi1");
	t2.trace("hi2");
    return 0;
}
  • C使用添加全局变量和全局函数来处理新增功能,C中功能扩展会比较困难;
  • 面向对象可以使得对象和对象之间的变量的关系更紧凑。

CPP的特点

  • 优点:
    • 强大的抽象封装能力:这让C++语言具备了强大的开发工程的能力,在封装的同时C++最大程度的保留了性能;
    • 高性能:运行快,并且占用资源少一直是C++语言的追求;
    • 低功耗:特别适合在各种微型的嵌入式设备中运行高效的程序;
  • 缺点:
    • 语法相对复杂,细节比较多,学习曲线比较陡峭;
    • 需要一些好的规范和范式,否则代码很难维护;

CPP的应用

  • 大型桌面应用: Google Chrome和Microsoft Office等等

  • 大型网站后台:Google的搜索引擎等等

  • 游戏和游戏引擎:Unity等等

  • 编译器、解释器:LLVM、JAVA虚拟机等等

  • 视觉和智能引擎:OpenCV、Tensorflow等等

  • 数据库:Sql Server、Mongodb等等

  • 其他:自动驾驶系统、嵌入式设备等等

总结

总的来说,C++开发成本比较高;对于内存和CPU要求很高,低功耗并且程序被调用非常频繁等场景,目前来说C++是最合适的语言。

风语者!平时喜欢研究各种技术,目前在从事后端开发工作,热爱生活、热爱工作。