C++概况

C++起源于1979年,由BjarneStroustrup创建,是C语言的超集。它在1998年发布了第一个ISO标准C++98,并随着时间发展,引入了如C++11等新标准。C++以其强大的抽象封装能力和高性能著称,常用于大型桌面应用、游戏开发、编译器等领域,但其语法复杂,学习曲线陡峭。C++与C相比,更擅长于面向对象编程,提供更好的代码组织和管理。
摘要由CSDN通过智能技术生成

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\n", 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\n", 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++是最合适的语言。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

turbolove

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值