C++语言是一种应用较广的面向对象的程序设计语言,使用它可以实现面向对象的程序设计。面向对象的设计与面向过程的设计是有很大区别的,面向对象的程序设计是在面向过程的程序设计的基础上一个质的飞跃。要学会面向对象的程序设计,首先要学会一种面向对象的语言,即要学会用VC编程,就要先有C++的基础,而学习C++语言首先要认识它面向对象的特性和实现面向对象的方法。
C++是一种面向对象的程序设计语言
当你首次学习C++时,总会碰到一些在C语言从未见过的概念,如:类、对象、抽象、封装、继承、多态性、虚函数等等。这些概念是C++所具有,下面简单的介绍一下C++对面向对象程序设计方法的支持和实现。
1、C++支持数据封装
支持数据封装就是支持数据抽象。在C++中,类是支持数据封装的工具,对象则是数据封装的实现。面向过程的程序设计方法与面向对象的程序设计方法在对待数据和函数关系上是不同的,在面向对象的程序设计中,将数据和对该数据进行合法操作的函数封装在一起作为一个类的定义,数据将被隐藏在封装体中,该封装体通过操作接口与外界交换信息。对象被说明具有一个给定类的变量,类类似于C语言中的结构,在C语言中可以定义结构,但这种结构中包含数据,而不包含函数。C++中的类是数据和函数的封装体。在C++中,结构可作为一种特殊的类,它虽然可以包含函数,但是它没有私有或保护的成员。
2、C++类中包含私有、公有和保护成员
C++类中可定义三种不同访控制权限的成员。一种是私有(Private)成员,只有在类中说明的函数才能访问该类的私有成员,而在该类外的函数不可以访问私有成员;另一种是公有(Public)成员,类外面也可访问公有成员,成为该类的接口;还有一种是保护(Protected)成员,这种成员只有该类的派生类可以访问,其余的在这个类外不能访问。
3、C++中通过发关消息来处理对象
C++中是通过向对象发关消息来处理对象的,每个对象根据所接收到的消息的性质来决定需要采取的行动,以响应这个消息。响应这些消息是一系列的方法,方法是在类定义中使用函数来定义的,使用一种类似于函数调用的机制把消息发送到一个对象上。
4、C++中允许友元破坏封装性
类中的私有成员一般是不允许该类外面的任何函数访问的,但是友元便可打破这条禁令,它可以访问该类的私有成员(包含数据成员和成员函数)。友元可以是在类外定义的函数,也可以是在类外定义的整个类,前者称友元函数,后者称为友元类。友元打破了类的封装性,它是C++另一个面向对象的重要牲。
5、C++允许函数名和运算符重载
C++支持多态性,C++允许一个相同的标识符或运算符代表多个不同实现的函数,这就称标识符或运算符的重载,用户可以根据需要定义标识符重载或运算符重载。
6、C++支持继承性
C++中可以允许单继承和多继承。一个类可以根据需要生成派生类。派生类继承了基类的所有方法,另外派生类自身还可以定义所需要的不包含在父类中的新方法。一个子类的每个对象包含有从父类那里继承来的数据成员以及自己所特有的数据成员。
7、C++支持动态联编
C++中可以定义虚函数,通过定义虚函数来支持动态联编。
以上是所讲的是C++对面向对象程序设计中的一些主要特征的支持。
C++的词法及词法规则
1、C++的字符集
字符是一些可以区分的最小符号。C++的字符集由大小写英文字母(a-z和A-Z)、数据字符(0-9)、特殊字符(空格,!,#,%,^,&,*,_,<,>,?,\,,)组成。
2、单词及词法规则
单词又称词法记号,它是由若干个字符组成的具有一定意义的最小词法单元。C++共有6种单词,分别是:标识符、关键字、运算符、分隔符、常量、注释符,在编码时要特别注意这些单词的词法规则。要注意的是C++中的空白符:C++中经常使用空白符,实际上,空白符不是一个字符,它是空格符、换行符和水平制表符的统称。注意,空白符不等于空格符,只是空白符包含空格符。还有一个空字符,要把它与空白符分开。空字符是指ASCII码值为0的那个字符。空字符在C++中有特殊用途,用它来作为字符串的结束符。存放在内存中的字符串常量都在最后有一个结束符,即用空字符,它用转义序列方法表示为’\0’。
C++程序结构的组成
C++程序结构的基本组成部分
1 预处理命令,C++提供了三类预处理命令:宏定义命令、文件包含命令、条件编译命令。
2 输入输出,C++程序中总是少不了输入和输出的语句,实现与程序内部的信息交流。特别是屏幕输出的功能,几乎每个程序都要用到,使用它把计算机的结果显示在屏幕上。
3 函数,C++的程序是由若干个文件组成的,每个文件又是由若干个函数组成,因此,可以认为C++的程序就是函数串,即由若干个函数组成,函数与函数之间是相对的,并且是并行的,函数之间可以调用。在组成一个程序的若干个函中,必须有一个main()。
4 语句,语句是组成程序的基本单元。函数是由若干条语句组成的。但是,空函数是没有语句的。语句是由单词组成,单词间用空格符分隔,C++程序中的语句又是以以分号结束。语句除了有表达式语句和空语句之外,还有复合语句、分支语句、循环语句和转向语句等若干类。
5 变量,多数程序都需要说明和使用变量。广义讲,对象包含了变量,即将变量也称为一种对象,狭义讲,将对象看作是类的实例,对象是指某个类的对象。
6 其他,除了以上讲述的5个部分以外,还有其他组成部分。例如,符号常量和注释信息也是程序的一部分。C++中都尽量把常量定义为符号常量,在C++的程序中出现的是符号常量,该符号常量代表着某个确定的常量值。
C++程序的书写格式
在编程时应该注意C++的书写格式,基本原则是:一行一般写一条语句。短语句可以一行写多个。长语句可以一条写多行。分行原则是不能将一个单词分开。用双引号引用的一个字符串也最好不分开,如果一定要分开,有的编译系统要求在行尾加续行符(“\”)
C++程序的实现
C++源程序的实现与其他高级语言源程序实现的原理是一样的。一般都要经过编辑、编译、运行。其中最要的是编译过程,C++是以编译方式实现的高级语言。C++程序的实现,必须要使用某种C++语言的编译器对程序进行编译。编译器的功能是将程序的源代码转换成为机器代码的形式,称为目标代码;然后,再使目标代码进行连接,生成可执行文件。该过程可分为三个子过程:预处理过程、编译过程(词法分析、语法分析、符号表、错误处理程序、生成目标代码)、连接过程。
Visual C++ 6.0版本是当前国内比较流行的一种C++编译系统。
本文只对C++语言的部分内容作个简单的介绍。相关的概念及特点,将在本栏目陆续加以介绍分析,敬请留意!同时也欢迎您来信来稿参与和交流。