|
|
|
《面向对象程序设计》自学方法指导 |
|
|
来源: 发布时间:2006-5-29 17:04:30 点击: |
C++是AT&T公司1985年正式推出的,它是C语言的超集,是C语言的面向对象的补充,即它除了C语言能编制过程式程序的所有语法机制而外增加了类和实例、继承、重载运算符、虚函数、友员、内联等支持面向对象程序设计的机制。这些机制的某些实现是C语言所做出的,所以编译并不拒绝纯C语言编写的过程式程序。C++完全容纳C并成为多范型语言,即支持多种程序设计风格,C是C++的真子集就决定了学习C++不仅要学习现象对象程序设计技术,还要学习C语言已有的、行之有效的编程技巧和特征。这里就有一个先学C语言还是先学C++的问题。作为自学参考书,我们建议大家先学C++反过来再补充C语言的生疏点。因为人总有语言惯性,一旦习惯用C编过程式软件,再改成面向对象反倒麻烦和不习惯。故我们认为C++的语法基础是C,但程序设计风格上忽略C,在开始学习面向对象C++语言上大家要有一个以上的认识。 在开始学习《面向对象的程序设计C++》之前,我们要了解C++的在编程中的重要性,C++语言集中反映了软件和程序设计的新技术:数据抽象和抽象数据,数据隐藏,重用的类属机制,类型、变量、函数均可参数化,事前控制程序的异常机制,支持重载与类型的多态以及继承机制,支持模块通信的编程风格。正是由于它反映了较多的软件新技术,所以它不是最终用户的首选语言,也不是程序设计入门的语言,而是应用开发和系统程序员的最佳语言。目前许多公司都在C++的基础上开发了许多编程工具,像Borland公司开发的C++Builder以及Microsoft公司开发的Visual C++都是程序员们编程中必不可少的工具语言。所以说《面向对象程序设计C++》是大家在今后作为一个程序员必须掌握的一门核心课程,可以这样说,不了解C++,就不能称之为一个程序员。 但是由于课程内容繁多,许多内容有着相当的难度。所以学好它并不是一件很容易的事情。所以一个好的学习方法就显得尤其重要。判断一个学习方法好坏的标准关键看这种学习方法是否适合于自己。所以大家在学习这么课程的过程中,应该不断吸收、总结、归纳,结合自己的特点,找出一种对自己来说行之有效的学习方法,这样学习起来就可以达到事半功倍。本文是依据《面向对象程序设计C++》课程自身的特点以及以往的一些教学经验,总结、归纳得出一些学习方法上的建议和重点和难点分析,希望能给广大学员带来启发,从而使大家读完之后,能够使自己的学习更加行之有效。下面我们来逐步给大家讲解:
一、关于本课程的学习方法 (1)在刚开始学习本课程时,一定要把基本概念,基本语法弄清楚。如果有某些指令的作用不清楚,可以参考C语言上得相关内容,务必要把每条指令的功能,如何使用,以及在使用过程中要注意的地方搞清楚,这样在以后的编程过程中,就不会因为一些极小的语法错误而不是由于算法的错误而导致编译通不过,而且在查找错误的过程中也添加了麻烦。因为这些错误实在是太小了,以至于你注意不到它的存在,而它确实妨碍了你的工作。这一点大家要注意。 (2)《面向对象程序设计》是一门实践性非常强的课程,大家在了解了基本的指令和用法之后,一定要在计算机上亲自上机实践,熟悉指令的用法。当知识丰富一点以后,大家一定要自己跟自己出一些题目,自己编程,在电脑上完成。只有通过不断的实践,课程上讲的东西才能得到更深一步的印象,自己的编程水平才能得到不断的提高。 (3)在学习过程中,要遵循循序渐进的方法,不要想一口吃成一个大胖子。内容要一点一点的看,知识要一点一点的消化。经过不断的学习和实践之后,慢慢的你会发现你已经成为了一个程序高手了。
二、下面来介绍一下本文的主要内容 1.数据和运算 2.流程控制、函数 3.类和对象 4.构造函数和析构函数 5.继承和派生类 6.多态性和虚函数 这些内容基本上包括了C++的全部内容,大家在学习的过程中,参照自学教材,对于不懂的地方,参考一下本自学参考,平时多加练习,上机实践,一定会取得好成绩。
三、面向对象程序设计的重点难点解析 由于自学教材并没有讲太多的关于C++语言的基本知识,而是一下子就进入了C++的核心部分,考虑到有些同学以前没有接触过C语言,所以本文再开始的第一部分给大家讲一些C++的基本知识。 1.数据和运算 (1)标示符 就计算机本身来说,它处理的不过是一些二进制数,但直接使用却很麻烦。因此,我们总是用具有一定含义的名字来表示程序中的数据,以便按名访问数据,这种名字就是标示符。C++中的标示符不能作关键字。关键字通常有特殊的意义,大家在后来的学习过程中就会体会到这一点。常用的关键字有: continue float new try for operator sizeof typedef break delete friend private struct catch double switch char if public virtual else inline return this void class enum long const short while 标示符的命名规则: ◇以字母或下划线开头 由字母、数字、美元符号$或下划线组成的字符序。 例如: Sum,PI,_sysflag,Number_of_movies 都是合法的标识符。下面的标识符是不合法的: Number_of_movies (含有非法字符_) 0 piece flag (含有非法字符空格) 5_6_7 (数字开头) ◇系统内部使用了一些用下划线开头的标识符(如_fd,_mode,_flag),为了防止发生冲突,建议用户在定义标识符时尽量不要用下划线开头。 ◇在C++中,一个标识符的长度没有限制,但在一般情况下,有效字符只有32个。 ◇C++中的标识符用大写字母棚小写字母将被认为是不同的字符。Total,TOTAL,total是3个不同的标识符。按照惯例,变量名、函数名通常用小写字母,而符号常量用大写字母表示。 标识符应按上述规则进行定义。此外,为了方便使用和减少错误,在定义标识符时应注意以下几点: ①为了增加可读性,应尽量"见名知义"。例如sum,area,score,name,day等。 ②对标识符的命名应"常用取简,专用取繁"。 ③应尽量避免使用容易混淆的字符,例如O(大写字母)、o(小写字母)、0(数字)、I(大写字母)、l(L的小写字母)、1(数字)、Z(大写字母)、z(小写字母)、2(数字)等。 (2)基本运算对象和数据类型 基本数据类型也叫简单类型,包括数值类型、字符类型和枚举类型,这里主要介绍数值类型和字符类型。C++提供了与硬件有关的五种基本数据类型:字符、整型、浮点数、双精度浮点数和无值。这几种类型数据的长度和范围随处理器类型以及C++编译器的实现而有所不同。但一般来说,整数总与CPU字长相等,一个字符通常为一个字节,占8位,符点数的确切格式则根据编译器的实现而定。一下给出了5种数据类型的字长和范围。 类型 位宽 范围 char(字符型) 8 0~255 int(整数型) 16 -32768~32767 float(浮点数) 32 约精确到6位数 double(双精度数) 64 约精确到12位数 void(空值型) 0 无值 (3)常量和宏 常量分为整形常量、浮点常量、字符常量和串常量。定义长度和类型可看上面的表。在C语言中常定义宏来作为常量,但是由于在C++中const关键字和内联函数的引入,宏就没有存在的必要了,大家可以看书中例1.2,它是怎么取代宏的。 另外,大家在看第一章的例子时,经常看到在程序的开头有#include<头文件.h>这样的语句,这是因为在以下的程序中,需要包括所需的头文件,要不然,程序中的某些函数就不能使用。例如,程序需要使用输入输出流,就必须包括头文件iostream.h,要用到printf和scanf函数,就必须包括标准输入输出头文件stdio.h。在以后的学习中,大家还会看到很多的函数需要头文件。 2.流程控制和函数 (1)程序的流程一般有:顺序结构、选择结构和循环控制结构 顺序结构:就是按照程序的正常顺序从开始到结束,中间没有跳转,一条语句一条语句的执行,直到结束。 选择结构:一种是if--else语句,另一种是switch开关语句。都是根据相关的条件执行相关的语句。 循环控制语句:循环方式有两种,while和for循环。在编写循环语句时,千万要注意一点,就是不能编写死循环。一般这种循环编译时可以通过,但却是错误的。所以在写完程序之后,在脑海里要模拟一遍计算机执行该循环的过程。 (2)函数 首先说明,并非任何函数都要自己动手建立,使用现成的函数是程序设计的第一选择,当没有标准库函数和其他函数可用时,才需要编写指定功能的函数。函数是构成C++的模块,结构化程序设计的重要方面,它把程序分解成一个个自成一体的逻辑单元,使得程序结构清晰,易于维护。定义函数就是要求在编译时建立一个函数实体。 |
|
|
|