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

yumo6662周前 (07-01)技术文章6

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++结构中可以有自己的成员变量和成员函数。一、结构不同1、C语言:C语言结构只有成员变量,而没...

C 语言和 C++ 有什么区别?老程序员居然这样理解,不怕你不懂

差不多是win98跟winXP的关系。C++是在C的基础上增加了新的理论,玩出了新的花样。所以叫C加加。C是一个结构化语言,它的重点在于算法和数据结构。C程序的设计首要考虑的是如何通过一个过程,对输入...

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

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

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

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

C/C++基础语法复习(一):C++与C语言的区别,主要有这些

和C的区别1.概念:C++ 是一种静态类型的、编译式的、通用的、大小写敏感的、不规则的编程语言,支持过程化编程、面向对象编程和泛型编程。C++ 被认为是一种中级语言,它综合了高级语言和低级语言的特点。...