c++概括

时间:2023-03-08 17:07:45
c++概括

c++到底是什么样的语言

在过去的几十年,计算机技术的发展令人吃惊,当前的笔记本电脑的计算速度和存储信息的能力超过了20世纪60年代的大型机。20世纪七十年代,C和Pascal语言引领人们进入结构化编程时代。20世纪80年代,人们见证了一种新编程模式的成长:面向对象编程(OOP)。

20世纪七十年代,贝尔实验室致力于开发UNIX操作系统;操作系统是能够管理计算机资源,处理计算机与用户交互的一组程序,为完成这项工作,需要一种简洁,能够生成简洁且快速的程序,并能有效控制硬件的语言。

传统上,程序员使用汇编语言来满足这些需求,汇编语言依赖于计算机内部的机器语言。然而,汇编语言是低级语言,它直接操控硬件,直接访问CPU寄存器和内存单元。因此汇编语言针对特定的处理器,要将汇编程序移植到另一种计算机必须实现对它的重写。高级语言致力于解决问题,而不注重硬件。于是他们在旧语言的基础上开发了C语言。

C++在C的基础上移植了新的概念。一般来说,计算机程序要处理两个概念——数据和算法。数据是程序使用和处理的东西,而算法是程序使用的方法。

过程性语言

C语言在最初面世时是过程性语言,这意味着它强调的是算法的方面。从概念上讲过程化编程首先确定计算机应采取的操作,然后使用编程语言实现这些操作。

相比于汇编语言,过程化语言毫无疑问是相对清晰的,易修改的,但是,弊端随着程序规模的扩大而显现,很多旧式程序的执行路径很混乱,各种分支语句使得它看起来像混乱的意大利面条,修改这种程序简直是一场灾难。为了解决这种问题,计算机科学家开发了一种更为有序的编程方法——结构化编程。

结构化编程

C语言具有使用这种方法的特性,例如,结构化分支限制为一小组行为良好的结构(for循环,while循环,do while循环和if else语句),另一个原则是自顶向下的设计。在C语言中,其理念是将大型程序分解成小型程序,以便于管理任务;如果小型任务过大,则进一步分解。这一过程将程序划分为小型的,易于编写的模块。它鼓励程序员开发程序单元(函数)来表示各个任务模块。结构化编程技术反映了过程性编程的思想,根据执行的操作来构思一个程序。

面向对象编程

虽然结构化编程的理念提高了程序的清晰度,可靠性,并且非常易于维护。但是,在编写大型项目时,仍然面临着挑战。为了解决这个问题,OOP提供了一个新的编程方法,与过程式注重算法的实现不同的是,面向过程编程强调的是数据,其理念是设计与问题相关的数据格式。在c++中,类是一种范式,它描述了这种新型数据格式,对象是根据这种规范结构的特性数据结构。通常,类规定了可使用哪些数据来表示对象以及可以对这些数据执行哪些操作。OOP程序设计方法首先设计类,它们准确的表示了程序要处理的东西。例如,如果我们设计一个公司人员管理系统,那么要定义人员的职称,人员的工号,人员的工资等,然后类定义描述了对类的可执行操作。从低级组织(类)到高级组织(程序)的处理过程叫自下向上的编程。

OOP编程并不是仅仅将数据和方法合并成类定义。例如OOP还有助于创建可重用的代码,这将减少大量的工作。C++真正的优点之一是:可以方便的重用和修改现有的,经过仔细测试的代码。

C++与泛型编程

它与OOP的目标相同,即使重用代码和抽象通用概念更加简单。泛型编程提供了执行常见任务的工具。术语泛型指的是独立于类型的代码。

总结:c++创始人Bjarne Stroustrup在谈到c++时曾说:“c++是为了我和我的朋友不必再使用汇编语言,C语言和其他高级语言而设计的,它的主要功能是可以更加方便的编写出程序,让编程序的人快乐!”我想,这就是c++的魅力吧。让程序员快乐!