千家信息网

C++学习笔记之(一)

发表于:2025-02-05 作者:千家信息网编辑
千家信息网最后更新 2025年02月05日,从今天开始学习C++,掌握一门编程语言,不管对于后续的语言学习,还是以后工作来说,都受益良多,所以,刻苦钻研,踏实进取。日后必有做为。Key Point 1:C++的产生(一)"C语言来源"C++来源
千家信息网最后更新 2025年02月05日C++学习笔记之(一)

从今天开始学习C++,掌握一门编程语言,不管对于后续的语言学习,还是以后工作来说,都受益良多,所以,刻苦钻研,踏实进取。日后必有做为。


Key Point 1:C++的产生

(一)"C语言来源"

C++来源于C,是C的超集。和C有着很深的渊源,所以介绍C++之前,先来介绍C.


background:早期的程学设计语言,一种机器语言,(Machine Language),一种汇编语言(Assembly Language)。尽管这两种语言具有程序指令可以访问底层硬件,执行效率高的优点。但是它们从可读性、可移植性以及对于问题的描述性能上来说,就远不够了。而且,编码对于程序员来说简直就是中折磨。


19世纪70年代,"C语言之父"Dennis Richite在贝尔实验室致力于开发Unix OS(Unix的产生这里不做描述)。为此,Ritchie需要一种语言,他必须简洁、高效,能够生成简洁、快速的程序,并能有效地控制硬件。


传统上,程序员使用汇编语言来满足这些需求,汇编语言依赖于计算机的内部机器语言。But,汇编语言是low-level语言,就是说,他针对特定的计算机处理器。因此,要将汇编语言移植到另一台计算机上,必须使用不同的汇编语言重新编写程序。这就像是,每次购买新车时,都发现设计人员改变了控制系统的位置和功能,客户不得不重新学习驾驶这辆新车。不过,Unix是为在不同的计算机(或平台)上工作而设计的,这就意味着它是一种高级语言。高级语言致力于解决问题,而不是针对特定的硬件。


一种被称为编译器的特殊程序将高级语言翻译成特定计算机的内部语言。这样,就可以通过对每个平台使用不同的编译器来在不同的平台上使用同一个高级程序语言了。


Ritchie希望能有一种语言,可以既能将低级语言的效率、硬件访问能力和高级语言的通用性、可移植性融合在一起,于是他在旧语言的基础上开发了C语言。


(二)"C++产生"

C语言的出现取得了长足的发展,从Unix OS中便可以看出。但是随着技术的发展,他也遇到了瓶颈。(看来IT技术出现问题本来就是一种必然的情况,只是这种变化来的快了点罢了)C语言的风格决定了它的缺点。


一般来说,计算机要处理两个概念:数据和算法。数据是程序使用和处理的信息,而算法是程序使用的方法。C语言是面向过程的语言(procedural language),它强调的是编程的算法方面。从概念上说,过程化编程语言首先要确定计算机采取的操作,然后使用编程语言来实现这些操作。程序命令计算机按照一系列流程生成特定的结果,就像菜谱制定了制作蛋糕的厨师应该遵循的一系列步骤一样。

但随着程序规模的扩大,早期的程序语言(FORTRAN & BASIC)都会遇到组织方面的问题。执行路径很混乱,可读性几乎不可能,而且修改起来一场麻烦。为解决这个问题,计算机科学家开发了一种更有序的编程方法,结构化编程。它将分支限制为一小组行为良好的结构(C中for loop,while loop,do while loop,if else sentence)。另一个原则是采用自顶向下的设计(top-down)。将问题分解为若干的子问题或者子模块,便于管理。


但是编写大型程序时,仍然面临挑战。为应付这种挑战,OOP提供了一种方法。与过程性编程强调算法不同的是,OOP强调的是数据。OOP让语言来满足问题的要求,而不是过程性编程的那种使问题满足语言的过程性方法。OOP的理念还设计与问题的本质特性相对性的数据格式。


在C++中,类是一种规范,它描述了新型数据格式,对象就是根据这种规范构造的特定数据结构。类准确表示了程序要处理的东西。从低级组织(类)到高级组织(程序)的处理过程叫做自下而上(bottom-up)的编程。


基于此,C++产生于20世纪80年代的贝尔实验室,它的开发者是Bjarne Stroustrup("C++之父")。后续的标准化工作为C++的发展和应用范围提供了莫大的帮助。现实也证明了C++是一种功能强大的编程语言。(随着学习的深入逐渐体会它的强大之处)


注:1)Unix OS 日后研究

2)top-down vs bottom-up

语言 程序 C++ 问题 编程 计算机 高级 汇编语言 数据 过程 不同 处理 设计 学习 就是 方法 硬件 算法 编程语言 开发 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 方舟服务器存档能换号使用吗 河南东豫网络技术公司怎么样 数据库系统概什么软件 红德信网络技术有限公司 大学医学院数据库学什么 社区组织网络安全宣传 浅谈网络安全的方法 数据库表什么时候到达瓶颈 天龙私服服务器装备脚本修改 通州区专业软件开发联系方式 社交软件开发的特殊性 计算机网络技术本科专业代码 西安网络安全服务公司排名 数据库角色是什么 上海能耗管理软件开发价钱 四川正规软件开发哪家好 深瑞网络技术有限公司怎么样 k3数据库初始化 云服务器如何修改主机名为中文 存储服务器维修费税收编码多少 数据库双身份 网络安全管理贯彻落实情况 安卓手机软件开发的测试题 女生软件开发出路 邯郸市厚昌网络技术有限公司 梦幻西游2代理服务器 恒生科技指数和中概互联网的区别 软件开发管理之精细化管理 重庆竞胜网络技术 中学生网络安全事件案例
0