C++类及其对象的封装性

上传人:野鹰 文档编号:2906529 上传时间:2017-07-28 格式:DOC 页数:10 大小:111.50KB
返回 下载 相关 举报
C++类及其对象的封装性_第1页
第1页 / 共10页
C++类及其对象的封装性_第2页
第2页 / 共10页
C++类及其对象的封装性_第3页
第3页 / 共10页
C++类及其对象的封装性_第4页
第4页 / 共10页
C++类及其对象的封装性_第5页
第5页 / 共10页
点击查看更多>>
资源描述

《C++类及其对象的封装性》由会员分享,可在线阅读,更多相关《C++类及其对象的封装性(10页珍藏版)》请在金锄头文库上搜索。

1、1实验一C+ 类及其对象的封装性一、实验目的和要求(1) 了解 C+类的构成。(2) 掌握声明类的方法,类和类的成员的概念以及定义对象的方法。(3) 掌握成员函数的定义。(4) 熟悉构造函数和析构函数。(5) 了解 C+的封装性。二、 C+程序开发过程C+程序开发过程如图 1.1 所示。C+程序开发过程与其他高级语言语言源程序开发过程一样,都必须先经过编辑、编译和连接过程,最后生成可执行的代码后才能运行。程序开发过程基本步骤如下:(1) 编辑编辑是将编写好的 C+源程序输入到计算机中,生成磁盘文件的过程。磁盘文件名字要用扩展名.cpp,例如: File.cpp。(2) 编译编译是通过编译器将程

2、序的源代码(.cpp)转换成为机器代码的形式,称为目标代码,即机器语言指令,这时产生的文件扩展名为. obj。如:将源文件File.cpp 编译后,生成目标文件 File.obj。但这仍然不是一个可执行的程序,因为目标代码只是一个个的程序块,需要相互连接成为一个适应操作系统环境的程序整体。为了把它转换为可执行程序,必须进行连接。(3) 连接连接是编译的最后一个过程,它将用户程序生成的多个目标代码文件和系统提供的库文件(.lib)中某些代码连接在一起,经过这种连接处理,生成一个可执行文件,存储这个可执行文件的扩展名为.exe。如:File.obj 文件经连接处理后,生成可执行文件 File.ex

3、e。(4) 运行最后是运行程序。运行可执行文件的方法很多,一般在编译系统下有运行功能,可通过选择菜单项的方式实现。程序在被编译、连接的过程中,难免会出现错编译错是否是开始编辑源程序存盘编译File.objppFile.cpp连接运行File.exeobjpp运行错是连接错是否是否是结束图 1.1 C+程序开发过程2误,这时系统会给出致命错和警告错的提示,这时需要返回上一步过程中,对源程序进行修改,直至没有错误提示为止。对于程序中存在的致命错误必须要进行修改,否则,系统不能生成可执行文件。程序中存在警告错误时,虽然系统也会生成可执行文件,但是一般要求修改错告错误后再再去运行可执行文件,因为有的错

4、告错误会造成结果的错误。编译过程主要是进行词法分析和语法分析的过程。程序的运行,是对算法的验证。程序被 运行后,一般在屏幕上显示出运行结果。用户可以根据运行结果来判断程度是否有算法上的错误。三、 基本概念(1)C类的构成定义类的一般形式class 类名private:/私有类型数据成员和成员函数protected:/保护类型数据成员和成员函数public:/公有类型数据成员和成员函数 ;(2) 成员函数的定义定义成员函数的一般形式返回值类型类名:成员函数名(参数表)函数体;其中“:”是作用域运算符例:void CArea:square(int vx,int vy)其中:void 为函数返回值类

5、型CArea为类名:为作用域运算符square为成员函数名int vx,int vy为参数列表(3) 定义对象 对象定义的一般形式();例:class CDate int Year;3CDate myBirthday(1988,10,1),*day; 其中: CDate为类名myBirthday为对象名(1988,10,1) 为初值表*day 为指向 CDate 类的指针(4)构造函数与析构函数 构造函数构造函数应具有以下特点,并遵循下列规则:1. 构造函数名与类的名称必须相同。2. 构造函数没有返回值,因此也没有函数类型的说明。3. 类中既可包含多个构造函数,也可没有构造函数,此时编译系统会

6、自动使用缺省值。4. 拷贝构造函数可利用已有的对象来建立一个类中的新对象。5. 构造函数是由系统自动调用来给对象进行初始化的。构造函数一般格式:构造函数名(类型 1形参 1,类型 2形参 2,)例:类中声明构造函数class CA/public:CA() ;/声明无参数的构造函数CA(int rx,int ry); /声明带两个整型参数的构造函数CA(float rr) r=rr; /声明带一个浮点参数的构造函数 CA(floxt rr,char ra ) /声明带两个参数的构造函数 ;定义对象的一般格式:类名对象名(实参 1,实参 2,) 析构函数1. 析构函数的名称必须是“”符号加上类 名

7、称。2. 析构函数没有返回值,也不能接受任何参数,因此也没有函数类型说明。3. 一个类仅有一个析构函数,如果类中未定义析构函数,系统会自动加上一个完全不做任何事的析构函数。4. 析构函数不能重载。 当对象的生命期结束时,会自动执行析构函数。三、 程序例题例 1.1 显示日期。程序实现:#includeiostream.hclass tdate4 private: /成员函数声明int month;int day;int year;public:void set(int, int, int); /置日期值int isleapyear( ); /判是否闰年void print( ); /输出日期值

8、;void tdate:set(int m, int d, int y) month = m;day = d;year = y;int tadte:isleapyear( ) return(year%4=0&year%100!=0|year%400=0);void print( )cout #include class String /声明一个字符串类 int length; /字符串长度char *str; /指向字符串指针public:String(char *); /声明构造函数String(const String &p); /声明自定义拷贝构造函数void Show( ) /显示字符

9、串 cout #include class String /声明一个字符串类 int length; /字符串长度char *str; /指向字符串指针public:String(char *); /声明构造函数String(const String &p); /声明自定义拷贝构造函数void Show( ) /显示 cout Num Score; /输入信息int Student:Find(int n)9 if(Num=n) return 1; /学号相等返回 1else return 0;void Student:Display( ) /输出信息到屏幕 cout n;for(i = 0;

10、i 5; i+) if(stui.Find(n)=1 ) /查找 stui.Display( );flag = 1;break;if(flag=0)cout没有找到该学生!endl;程序运行结果:在该题中先定义学生对象数组,循环调用建立信息函数 Set( ),建立 5 位学生的信息,后调用 Display( )函数将信息输出显示。然后,根据输入的学号,调用 Find( )查找函数,查找符合学号的学生绩,并输出。五、 实验题目1 编写一个程序,设计一个类 score 用于统计一个班的学生成绩,其中使用一个静态数据成员 sumfs 存储总分和一个静态成员函数 reumfs 返回该总分。102 建立一个对象数组,内放 5 个学生的数据( 学号、成绩),设计一个函数 Max( ),用来计算 5 个学生中成绩最高者,并输出其学号。3 定义一个通讯录类,该类中有数据成员姓名、地址、电话、邮政编码等,成员函数有构造函数、ChangeName( )、Display( )函数,构造初始化每个成员,ChangeName( )函数用来个修改姓名,Display( )函数把完整的数据打印出来。

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 行业资料 > 其它行业文档

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号