C++学习笔记 I——C++概述

来源:互联网 发布:16年网络作家榜 编辑:程序博客网 时间:2024/06/14 02:14

作为一名学生,在学习C++的过程中绕过许多弯路,也有过许多迷惑,在此写出来,作为对自己的一种警戒吧。

每个信息技术学科的大学生(计算机、自动化、控制工程等等)都要学习编程语言,有的会学习C,有的会学习C++。每位老师的第一课都叫做绪论,也就是对编程语言的大致介绍。大多数同学们的第一课都是认真听讲,但是很无奈的是,大多数零基础的同学都是迷茫的度过了这节课,因为大多数新概念都不很理解、熟悉。没关系,在这里,就让我再大致地为大家介绍一遍C++的大概体系。


C++程序组成:


编程语言,和人类语言一样,是由基本的机构来构成的。在上图中,我们可以看到C++语言的大概结构。如果把C++和汉语做类比的话,我们可以把基本符号看作汉字,将词汇和语句分别和汉语中的词语和句子相对应。这样会更加地便于理解。

在这里我就不和大家赘述什么是基本符号,什么是ASCII码等等繁琐的概念。我今天想说的只是一种总体的思想,这是我们编程的时候需要具备的基本素质,也是我们在今后的学习工作中的必备机器逻辑。

大家在上图中看到了SP框架和OOP框架的两种编程结构。那么大家就开始有了第一个疑惑:这两个是什么有什么用

SP编程是Structured Programming(结构化编程)的缩写,它代表的编程方式是由上至下的顺序结构。也就是说在我们使用这个程序的时候,必须一步一步的来发送指令。比如,我们想计算一个班同学的平均分,最高分和最低分。如果我们用SP编程,在程序中先求平均分,再求最高分,最后求最低分。那么在我们使用程序(专业的说法叫做调用程序)的时候,我们只能按照程序的顺序先求平均, 再找最高,最后找最低。这样的话,如果某一天我着急用最低分,想先用求最低分这个功能,对不起,你先得过平均分和最高分这两关。如此看来,SP编程不甚方便,尤其是在进行多任务时,程序的灵活性较差,无法快速满足用户的要求。

那么这个问题怎么破解呢?那就要看OOP的本事了。

OOP是Object Oriented Programming的缩写,全称为面向对象型编程。大家大可不必困惑于它奇怪的名字,也不必去研究为什么要“面向”,什么是“对象”。我们顺着上面的例子继续说,OOP的出现,将求平均、求最高和求最低变为了同一个程序的三个模块。我们在调用程序的时候,可以根据自己的意愿,随意地求得三种数据,而不必按部就班地去一步一步求了。

到此为止,我们就简要回答了是什么有什么用的问题。

讲到这里,老师们大多要顿一顿:“咳咳,下面是OOP的重点特征了,大家注意听。”然后开始扯出来一些蜜汁词汇:“封装性,继承性,多态性”。这三个词对于零基础同学们的打击是致命的。因为他们听起来太高深了。

下面,我为大家简单地说一下什么是封装性、继承性和多态性。

假设你设计了一个程序,成功运行之后,你希不希望别人去改你的代码呢?当然不,这是个非常完美的程序。那么我们就需要一项机制来保护我们的程序中的各种成员。这项机制就是给成员们分配保密级别。C++中有几种常见的保密级别:private,public,protected。这些词汇一看就明白了,private(私有)和protected(受保护的)肯定是那些不想让你动的东西。public(公共)则是大家一同使用的东西咯。这种把大家分门别类关起来,以便于防止程序发生意外的机制就叫做封装性。回头来看,这个名字倒是蛮形象的嘛。

对于继承性,这个就更好理解了。在学习中,老师常常教导我们要见贤思齐,也就是说要多学别人的优点。不同的程序都会有自己的优点,能不能通过某种机制,将这些优点(或者我们需要的功能、数据的特点)集中在一起进行使用呢?当然可以了。继承性是一个基于逻辑的概念,它将事物的共同属性提取出来(比如公交车和卡车都属于汽车),然后将更高逻辑层次事物(汽车)的特点转继给逻辑层次相对低的事物(公交车、卡车等)。由此,我们在创建不同类型的数据时,总能找到一个更高层次的大类,我们基于这个大类进行细小的改动,就能创造出更加具体、实际的小类了。

对于多态性,我们就要使用一些基本的概念来进行解释了。对于一个特定的程序,其中各个数据成员的数据类型都是固定不变的,比如“+”,一般是对整形(int)或浮点型(float)数字的加和。但是如果我们想赋予字符串加和的功能,就需要重新写一个程序。多态性中的“多态”指的是数据类型的多种多样。也就是说,“+”既可以用来进行数字加和,也可用来进行字符串连接, 还可以引入其他的数据类型进行类似于加和的运算。不拘泥于同一种数据类型,这就是多态。

到这里,我们的绪论课就告一段,希望大家能够理解我所描述的SP和OOP框架下的编程,更快地转换思维,以适应下面要学习的知识。

原创粉丝点击