C++和C语言已经不是一种语言了,现代C++与C不一样了

yumo6663个月前 (07-01)技术文章27

C++和 C 完全不一样。

学 C++前可以不用学 C,它和 C 的相似度都比不过 Java。在 C++11 之前,C++可以说是包含类的 C,之后就完全不同了。我用 C++开发也有 20 年了,下面我分析一下它们的区别。

1. 首先应用场景基本不同,比如说 C 在系统内核驱动底层协议,而 C++在系统的中间层和应用层协议,还有游戏框架、音视频处理、工业软件等领域都是在使用 C++,应用领域是有明确的区分的。

2. 其次它的语法也不同了,C++虽然兼容 C 语言语法,但如果大量使用普通的指针和函数指针,静态成员函数全局变量,那还是 C 风格的开发方式,不是现代 C++。

C++被广为诟病的内存安全问题,大家就想用 Rust 的去淘汰它,不过显然不可能,但 C++98 的那种开发方式一定要淘汰的。

C++11 开始智能指针可以用于所有的业务,为了提高效率,减少安全问题,C++11 开始增加的移动语义要全面使用,绝大部分 STL 库都是支持移动语义,它减少了内存的复制和指针共享的问题。

函数指针也不要直接使用了,可以使用 C++的各种函数对象,从而能实现函数式编程类型的自动推导 auto 也可以大量使用,可以简化代码,减少变量未初始化的问题。

这是刚给一家大型的电力企业做 C++培训,给他们讲了 C++新的开发方式,他们的旧系统基本都基于 C++98 的。这两年很多企业来找我做 C++11-20 的新的开发方式的培训,大家都想替换到更安全和高效的开发方法。

这次我上线了一个 C++的现代编程的课程,可能我有些粉丝学不了,因为我的很多粉丝我做过调研,就多年开发经验,可能你语言部分已经很熟悉的,这针对一些新手从零开始或者是对语言本身不怎么熟悉的,大家可以学习一下。

最后记得点赞关注夏老师。

相关文章

C++ 与 C 的那些事儿:深度剖析两者区别

在编程的世界里,C++ 和 C 就像是一对有着紧密血缘关系却又各具特色的兄弟。对于很多初学者或者有一定编程经验的人来说,分清它们之间的差异至关重要。今天,我们就来深入探讨一下 C++ 和 C 的区别。...

C与C++ 的真正区别在哪里?

C和C++区别为:结构不同、设计不同、函数库不同。C语言:C语言结构只有成员变量,而没成员方法。C++:C++结构中可以有自己的成员变量和成员函数。一、结构不同1、C语言:C语言结构只有成员变量,而没...

C++和C语言的区别在哪里?

C++是目前国内信息学奥赛的指定语言,它也是现如今最为流行的编程语言之一,因此不少孩子在选择编程语言学习时,会选择C++这一编程语言。由C++的名字不难看出,它与老牌语言C语言之间关系匪浅。那么,C+...

Java培训:C++和Java有什么区别?

  众所周知,C++和Java这两种编程语言都是面向对象的,但是这两种语言在几个方面有所不同。C++是C语言的衍生物,具有面向对象和过程编程语言的特征。基本上,C++是为应用程序和系统开发而设计的,而...

C#和C++什么关系呢

C++和C#两个不同的语言,它们有什么关系呢?C++用术语叫做非托管语言,C#叫做托管语言。谁托管谁呢?毫无疑问,C++托管了C#。没有了C++,C#就残废了,无法运行。没了C#,C++可以运行吗?当...