首页 > 编程语言 >C++ 01.学习C++的意义-狄泰软件学院

C++ 01.学习C++的意义-狄泰软件学院

时间:2023-11-28 10:04:37浏览次数:31  
标签:01 Java 语言 系统 C++ C语言 开发 狄泰


一些历史

  • UNIX操作系统诞生之初是用汇编语言编写的
  • 随着UNIX系统的发展,汇编语言的开发效率成为瓶颈,所以需要一个新的语言替代汇编语言
  • 1971年通过对B语言改良,使其能直接产生机器代码,C语言诞生
  • UNIX使用C语言重写,同时C语言在实践中不断升级完善。

C语言的特点

  • 没有深思熟虑的设计过程
  • 残留过多低级语言的特性
  • C语言在当时开发时可高效得开发
  • C语言开发的程序执行效率高

软件开发的发展

  • 当时的计算机主要用于计算,用户需求简单而固定
  • 使用的是面向过程的程序设计:数据结构 + 算法
  • 随着软件的发展,面向对象的程序设计方法暴露出缺陷。一些计算机科学家开始尝试将现实世界中的对象映射到计算机程序中。出现了面向对象的程序设计方法。

C语言的加强

  • 开发一种新的语言支持面向对象的方法
  • 并且要兼容已经存在的C语言代码
  • C语言和C++并不是竞争的关系
  • C++是C语言的加强,是一种更好的C语言
  • C++以C语言为基础,并且完全兼容C语言的特性

各语言关系

C++ 01.学习C++的意义-狄泰软件学院_Java

  • C++保留的C中的一些低级语言的特性
  • Java对C++进行剪裁,去掉一些低级特性等,由Sun发布。Java在行业中一度处于霸主地位。
  • 微软为了与Java竞争,推出C#
  • D语言源自C/C++,借鉴了众多编程语言的特色和现代编译器技术,运行效率比C#、Java更高
  • 开发效率更高的一些脚本语言也相继发布,不需要编译

现代软件产品架构图

C++ 01.学习C++的意义-狄泰软件学院_c语言_02

现代软件产品特性

  • 系统一般由多种语言开发成的
  • 系统架构的目标是拥抱用户需求的变化
  • 系统有用较好的可移植性
  • 系统可以方便得部署和更新

学习C++的意义

  • C++是一种更强大的C,通过学习C++能够掌握更多的软件设计方法
  • C++是Java/C#/D等现代开发语言的基础,学习C++后能够快速掌握这些语言
  • C++是各大知名软件企业挑选人才的标准之一

小结

  • 所有的软件系统都是为了满足用户需求而开发的。
  • 对于一个开发团队而言,在短期内开发出用户满意的软件系统是其核心竞争力的体现。
  • 对于一个开发者而言,能够胜任系统中任意一个模块的开发是其核心价值的体现。
  • 对于一个架构师而言,掌握各种语言的优势并合理运用到系统中,由此简化系统的开发,是其核心价值的体现。


标签:01,Java,语言,系统,C++,C语言,开发,狄泰
From: https://blog.51cto.com/wangpaifeixingy/8595249

相关文章

  • C++ 修改文件创建时间、修改时间属性
    简介        修改文件创建时间、修改时间、大小等属性。        博客《C++获取文件创建时间、修改时间、大小等属性》分享后,好兄弟“古月”发来一段代码,说可以修改文件的创建时间等。测试了一下真可以,下面是运行效果和代码:代码#include<windows.h>#include<f......
  • C++ 使用Windows的API CreateDirectory 创建多层级文件夹
    简介使用Windows的API创建多层级文件夹效果代码#include<windows.h>#include<direct.h>#include<iostream>#include<string>#include<sstream>#include<vector>//创建多层级文件夹boolCreateDir(conststd::string&path){ std::......
  • C++ 获取文件创建时间、修改时间、大小等属性
    简介获取文件创建时间、修改时间、大小等属性代码#include<iostream>#include<string.h>#include<time.h>voidmain(){std::stringfilename="E:\\LiHai123.txt";struct_statstat_buffer;intresult=_stat(filename.c_str(),&stat_b......
  • C++ 获取网卡名称和IP地址
    描述这是获取网卡名称和IP地址的代码示例,参考自。原文描述得比较详细,感谢博主分享。原文代码中没有输出网卡的物理地址,下面的代码进行了补充,并在win10上运行正常。代码//#include<WinSock2.h>#include<Iphlpapi.h>#pragmacomment(lib,"Iphlpapi.lib")//需要添加Iphlpapi.lib......
  • C\C++ 设置Visual Studio编译器使用C++17标准
    文章作者:里海简介:        使用ISOC++17标准可以为开发人员带来许多好处,包括更简洁的代码、更高的运行效率、更好的硬件支持、更好的兼容性和可移植性,以及更好的多线程编程支持等。那么如何设置vs使用c++标准呢?下面是方法。注意需要vs2017及以上版本。方法:打开VisualStud......
  • C++ 33.C++中的字符串类-狄泰软件学院
    C语言字符串的历史C语言不支持真正意义上的字符串C语言用字符数组和一组函数实现字符串操作C语言不支持自定义类型,因此无法创建字符串类型当年C语言主要用于开发UNIX操作系统,处理字符串的情况少,所以在当时的背景下没有让C语言中内置一个字符串类型。后来C语言越用越广泛,没办法只能......
  • C\C++ 专栏目录
    个人总结序号内容笔记01C++获取网卡名称和IP地址笔记链接02C++设置VisualStudio编译器使用C++17标准笔记链接03C++使用Pugixml库,轻松处理XML文件笔记链接04C++使用ShellExecuteEx调exe程序笔记链接05C++使用exception类,抛出自定义异常并捕获笔记链接06C++使用soc......
  • 00-序言01-向量究竟是什么?
    文章作者:里海简介:    此专栏是学习“线性代数”课程做的笔记,教程来自B站。视频作者是GrantSanderson,这套视频里的动画是他通过manim制作的(manim是一个开源的用于制作数学动画引擎,也是这位开发的)。视频采用直观、动态的方式展示数学概念,将复杂的数学理论转化为易于理解的......
  • C++标准库类std::packaged_task
    std::packaged_task是C++11引入的标准库类,用于封装可调用对象,如函数等,并将封装对象作为异步任务进行管理,通过与std::future结合使用,完成异步任务结果的获取。#include<iostream>#include<thread>#include<future>std::stringpromise_string(std::stringstr){......
  • CF1901E Compressed Tree(树dp)
    Problem题目地址Solution来自fcy大佬的思路记\(f_u\)表示假定以\(u\)为根的子树,在压缩后,(子树内的某一个点(包括\(u\)))可以向外(除\(u\)为根的子树外所以点的集合)连一条边时的最大\(sum\)。换言之,我们把树拆成以\(u\)为根的子树(记作\(Tree_u\))和非\(Tree_u\)部分。而......