浅谈C和C++异同

2017-05-04 18:26董昌源刘疆王仁鹤
艺术科技 2016年12期
关键词:关键字面向对象C语言

董昌源+刘疆+王仁鹤

摘 要:The C++ Programming Language ,即为C++语言,C++语言是C语言的继承,在C语言的基础上,又对C语言的过程化程序设计进行了优化,既可以使用以抽象数据类型为特点的基于对象的程序设计,又可以使用以继承和多态为特点的面向对象的程序设计。C++语言不但完美地继承了父类的C语言,还可以进行基于面向对象过程化的程序设计,因此,C++语言不仅拥有计算机高效运行的实用性特征,而且还具有提高大规模程序的编程质量与程序设计语言的问题描述的能力。

关键词:C;C++;面向对象

在20世纪70年代中期,经历了第一种计算机高级语言诞生事件的Bjarne Stroustrup在使用Simula、ALGOL中,受到了Simula的类体系感、ALGOL的结构的启发后,想要实现一种编程简单、正确可靠、运行高效、可移植性强的编程软件,于是,他以C为背景,以Simula框架的设计思路为新软件的框架思想。1979年,Bjame Sgoustrup到了Bell实验室,开始将C改良为具有独特类框架的CWC(C With Classes)。1983年,该语言的开发完毕,获得巨大的成功。于是这个新兴语言被命名为C++。

在那个时候的C++中,人们对类没有什么具体的概念,只知道类是可以支持数据封装的工具,对象则是数据封装的实现。而现在,面向对象的程序设计是将数据和对该数据进行合法操作的一系列函数方法封装在一起,这就是一个类。成员对象是被定义在这个类中的一个变量,每个类中可以包含若干私有成员、公有成员及保护成员。当一个类被定义完毕,所有函数方法均封装在其内部,这个类就可以看成一个完整的实体单元使用。类内部的工作方法被完美地隐藏起来,使用此类的用户是看不到类是如何工作的,想要修改也没有办法,这就是类的封装特点。

C++语言可以在现有的类的基础上声明新的类,新的类可以完美调用其声明的类中的函数,他可以在父类那里继承所有非私有的属性和方法,作为自己的成员,成为原有类的派生类,我们将被使用的那个类称为父类,而这个新的类就是子类,这就是继承的思想。通过继承可以更有效地组织程序结构,明确类间关系,并且充分利用已有的类来完成更复杂、更深入的程序开发,这就是类的继承特点。

C++语言的执行过程中,对于多态的理解在同一操作作用于不同的对象,可以有不同的解释,也会产生不同的执行结果。在运行时,可以通过指向基类的指针来调用实现派生类中的方法。编译时的多态性是通过重载来实现的。对于非虚的成员来说,系统在编译时,根据传递的参数、返回的类型等信息决定实现何种操作。运行时的多态性就是指直到系统运行时,才根据实际情况决定实现何种操作。

C++语言的程序开发中为了方便测试,通过使用解释型的执行方式,使代码的逐条语句依次执行,以编译型的启动运行的方式来生成程序最终的执行代码。在C++语言所修饰的类中,某些对象类所代表的事物或者概念都可以是抽象的。在使用Private修饰数据或者函数的时候,只有在类中加入这个数据或函数的声明才被允许使用。类在与外部连接时,如果使用的是Public修饰词,则本类与其他类都可以调用。在抽象的语言中,什么是对象是一个老生常谈的话题。对象在笔者看来,就是主对客观事物的某个实体进行描述所形成的一个实例化的代号,它可以作为一个单位,可以作为一个系统,这些元素共同组成了系属性,属性和服务方法是构成对象的两种要素,属性的实质是一个存储数据的数据项,服务的实质是一个操作方法序列。

程序生成是编程平台将源码C++代码转换成计算机可以识别的计算机语言,并将这种语言翻译变成可以运行的应用程序的过程。如果程序代码不出现问题,编译的结果也是没有ERROR,那么通常一个debug功能键即可搞定这个过程。但在计算机运行的过程中该过程实际上分成两个步骤:

第一步:是对程序使用编译器Compiler进行编译,编译器将C++语句转换成机器码。

第二步:使用链接器Linker对程序进行链接,链接器将编译获得机器码与C++库中的代码进行匹配,如果查询到了相关的匹配语句,计算机则执行这段程序,并输出结果并通过机器码返还给我们,计算机再通过解读变成我们能看懂的东西。

关键字(KeyWord)是整个语言范围内预先保留的标识符,又称为“保留字”,就是已被此类语言本身使用,不能作其他用途使用的字。例如,关键字不能用作变量名、函数名等标识符,在C的内库中由ISO标准定义的C语言关键字共32个。而在C++语言中,关键字的含义和范围又更上一层楼,每个C++关键字都有特殊的含义。關键字通过预处理后,C++的内库中由ISO标准定义的C++语言的63个关键字在Preprocessing-token区中出来被取出来,标记为处理记号,其余的标识符则作为记号(Token),用于对象、函数、类型、命名空间的声。

总的来说,C语言是结构化和模块化的面向过程的语言,C++语言是面向对象的程序设计语言。C++语言是C语言的超集,类似于在高中的时候学会了高中数学,那么小学、初中数学也就不成问题了。在编程思想上略有区别,C语言强调程序的功能以及程序是否是是基于过程和以函数为中心的,而C++语言是面向对象的,注重程序内部的分层、分类,类与类之间的关系,以及使用到面向对象的方式思考和编程方法,希望大家引起注意。

参考文献:

[1] 钱能. C++程序设计教程(第2版)[M].北京:清华大学出版社,2005.

[2] 刘晶,裘旭光. C++语言程序设计[M].北方交通大学出版社,2003.

[3] 苏小红,孙志岗,陈惠鹏. C语言大学实用教程[M].北京:电子工业出版社,2013.

猜你喜欢
关键字面向对象C语言
履职尽责求实效 真抓实干勇作为——十个关键字,盘点江苏统战的2021
基于Visual Studio Code的C语言程序设计实践教学探索
成功避开“关键字”
面向对象的计算机网络设计软件系统的开发
基于C语言的计算机软件编程
面向对象的数据交换协议研究与应用
高职高专院校C语言程序设计教学改革探索
面向对象Web开发编程语言的的评估方法
论子函数在C语言数据格式输出中的应用
面向对象信息提取中影像分割参数的选择