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

yumo6666个月前 (07-01)技术文章49

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的头文件------#include c++的头文件---#include2、输入输出不同输入: int i = 10; c:scanf("%d",&...

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

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

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

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

C++语言到底是不是C语言的超集之一

C与C++两个关系亲密的编程语言,它们本质上是两中语言,只是C++语言设计时要求尽可能的兼容C语言特性,因此C语言中99%以上的功能都可以使用C++完成。本文探讨那些存在于C语言中的特性,但是在C++...

C语言 vs C++:谁才是编程界的“全能王者”?

C++和C语言作为两种广泛使用的编程语言,在设计理念、功能特性和适用场景上有显著差异。以下是它们的主要区别:1. 编程范式o C语言:过程式编程,强调函数和步骤化执行。o C++:多范式语言,支持过程...