C++概况

这篇具有很好参考价值的文章主要介绍了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\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++是最合适的语言。文章来源地址https://www.toymoban.com/news/detail-457220.html

到了这里,关于C++概况的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • AICodeConvert网站,可以用AI把代码从一种语言转换为另一种语言实现,代码开源了,从 6.24 到现在一个月, 没有主动推广,居然9.8K 访问量

    这是我一个之前周六 6.24 开始验证思路的项目,验证的感觉差不多,不做主动推广到现在一个月,访问量 9.8K 。 源码开源了,github.com 网址:AICodeConvert 另一个在佛系验证中的还有这个:Base64.kr,思路见 github 启发来源:有两个 1.社群聊过的 producthunt 提交 AI 作品,那么就静静

    2024年02月15日
    浏览(35)
  • “目前没有可用的登录服务器处理登录请求”停用的Windows Server 2008 R2服务器改域用户登录为本地用户登录

    这两天公司要那台下线有段时间的老服务器里的数据,WinServer08搭建的,头一次接触域控制器(安装了活动目录的主机称为域控制器,域控制器控制每个域)这个东西,打开之前备份的虚拟机,通过域用户登录的时候报错如下,有点懵逼。 联系资源池的老师打开虚拟机远程连

    2024年02月05日
    浏览(59)
  • winform使用SetParent 嵌入excel,打开的excel跟随dpi 25%*125%缩放了两次,目前微软官方没有好的解决方案,为什么

    双重缩放问题在将 Excel 嵌入到 WinForm 中时确实可能会出现,这是因为两个不同的应用程序(WinForm 和 Excel)之间的 DPI 缩放逻辑不一致,导致双重缩放的结果。 在 Windows 操作系统中,DPI 缩放是一种全局的设置,用于适应高 DPI 显示设备,从而提高显示元素的大小。当您将 Ex

    2024年02月14日
    浏览(47)
  • 三款强大的 AI 编程工具,可以轻松替换 Github Copilot

    大家好,提起 Github Copilot ,相信很多读者朋友们都听说过甚至使用过,作为 Github 研发的一款先进的编程辅助插件,它可以在我们日常编写代码的过程中,根据代码的上下文内容、注释等信息自动推断生成高质量的代码,很大程度上提升我们的代码编写效率。 而自从去年8月

    2024年02月13日
    浏览(126)
  • 我想知道,就目前形势而言,学java好还是C++好?

    就现实点看看,可以对比现在Java和C++的市场占有率,可以看到,到目前为止,Java在国内编程语言的市场仍然是占据着大头,在招聘当中Java的人数占有率仍然是遥遥领先于C++,Java目前开阔的市场以及其巨大的岗位需求,使得你可以在大多数的地方都可以谋一份饭吃。 再来看

    2023年04月24日
    浏览(37)
  • 目前排名前十的编程语言各自的特点和主要应用领域

    一.Python   特点 :1. 简单:Python是一种代表简单思想的语言。              2. 易学:Python有极其简单的语法。              3. 免费、开源:Python是FLOSS(自由/开放源码软件)之一。              4. 高层语言:使用Python编写程序时无需考虑如何管理程序使用的内存一类的底

    2024年02月08日
    浏览(44)
  • 没有硬件基础可以学单片机吗?

    在开始前我分享下我的经历,我刚入行时遇到一个好公司和师父,给了我机会,一年时间从3k薪资涨到18k的, 我师父给了一些 电气工程师学习方法和资料,让我不断提升自己,感谢帮助过我的人, 如大家和我一样需要我可以分享资料在评论区扣888或私我888当然可以学习单片

    2024年03月10日
    浏览(47)
  • 使用android studio将网站打包成apk(可以直接使用替换为自己的网站连接即可)

    公司有这个需求生成一个webapp应用。前面一直在使用web与Android混合开发,越是后面你就发现越有意思。hbuildX官网不怎么维护,虽然一直说这是潮流,uni-app开发也挺火的,但是安卓开发特别是适配不同的手机型号,真的是头大。 这是一个适用于Android Studio的模板项目,可让你

    2024年02月06日
    浏览(57)
  • 有没有可以代替风铃系统的专业问卷工具?

    风铃系统问卷是一种流行的调查和数据分析工具,已广泛应用于学术研究、市场营销和社会科学。然而,有几种替代产品提供了与风铃系统类似的特性和功能,可以被企业用来进行调查和分析数据。在这篇文章中,我们将介绍 风铃系统的十大替代产品 以及它们的特点。 1、

    2024年02月09日
    浏览(45)
  • 解决Windows系统远程登陆后vscdoe无法输入字符,键盘没有反应,鼠标可以点击,没有反应

    使用vscode编译器时,通过远程登录或者屏幕锁屏解锁后,vscode出现无法输入字符内容,但vscode没有死机,切换到其他软件的窗口再切换回来后,可以使用鼠标点击,但是只要使用键盘输入就会又出现卡死的现象。 这个问题我已经遇到两年多了,一直没有解决,在vscode的git仓库

    2024年02月07日
    浏览(73)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包