ImageVerifierCode 换一换
格式:DOCX , 页数:16 ,大小:40.25KB ,
资源ID:3108242      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/3108242.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(C++语言程序设计实验答案数据的共享与保护.docx)为本站会员(b****6)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

C++语言程序设计实验答案数据的共享与保护.docx

1、C+语言程序设计实验答案数据的共享与保护实验05 数据的共享与保护(2学时)(第5章 数据的共享与保护)一、实验目的(1) 观察程序运行中变量的作用域、生存期和可见性。(2) 学习类的静态成员的使用。(3) 学习多文件结构在C+程序中的使用。二、实验任务5_1 运行下面的程序,观察变量x、y的值。.endl; coutx=xendl; couty=yendl; cout在main()中求x和y的值.endl; int x=10,y=20; coutx=xendl; couty=yendl; cout进入函数fn1().endl; fn1(); cout返回main()endl; coutx=x

2、endl; couty=yendl; return 0;void fn1() int y=200; coutx=xendl; couty=ym这样的表达式,其中prt为指向X类的一个对象的指针。4. 命名空间作用域命名空间大型程序通常由不同模块构成,不同模块中的类和函数之间可能发生重名,将引发错误。命名空间可以解决类名、函数等的命名冲突。命名空间语法形式:namespace 命名空间名 命名空间内的各种声明(函数声明、类声明、)例namespace SomeNs class SomeClass . ;特殊的命名空间_ 全局命名空间:默认的命名空间_ 匿名命名空间:对每个源文件是唯一的命名空间作

3、用域一个命名空间确定了一个命名空间作用域引用其它命名空间作用域中的标识符_ 命名空间名:标识符名_ 例:声明一个SomeClass型的对象SomeNs:SomeClass obj1;将其它命名空间作用域的标识符暴露于当前作用域_ 对指定标识符using 命名空间名:标识符名;_ 对所有标识符using namespace命名空间名;例5-1中所声明的全局变量就具有文件作用域,它们在整个文件中都有效。例5-1 作用域实例。#include using namespace std; 5.1.25.2.15.2.2.若需要统计雇员总数,这个数据存放在什么地方呢?若以类外的变量来存储总数,不能实现数据

4、的隐藏。若在类中增加一个数据成员用以存放总数,必然在每一个对象中都存储一个副本,不仅冗余,且每个对象分别维护一个“总数”,势必造成数据的不一致性。比较理想的方案是类的所有对象共同拥有一个用于存放总数的数据成员。5.3.1 静态数据成员P154实例属性“一个类的所有对象具有相同的属性”,是指属性的个数、名称、数据类型相同,各个对象的属性值则可各不相同。以类的非静态数据成员表示。类属性是描述类的所有对象的共同特征的一个数据项,对于任何对象实例,它的属性值是相同的。通过静态数据成员来实现“类属性”。静态数据成员的访问静态数据成员不属于任何一个对象,只能通过类名对它访问,用法是“类名:标识符”。静态数

5、据成员的说明和定义在类的声明中仅仅对静态数据成员进行引用性说明,必须在文件作用域的某处用类名限定进行定义性说明,这时也可进行初始化。在UML中,静态数据成员下方添加下划线。例5-4 具有静态数据成员的Point类。引入静态数据成员的Point类。图5-2 包含静态数据成员的Point类的UML图Point x : int y : int count : int=0+Point(xx : int=0, yy : int=0)+getX() : int+getY() : int+Point(p : Point&)+showCount() : void#include using namespace

6、 std;class Point5.3.25.4.15.4.2. .;声明友元类,是建立类与类之间的联系,实现类之间数据共享的一种途径。在UML中,两个类之间的友元关系是通过构造型依赖来表征。图5-5 类A和类B友元关系的UML图#include using namespace std;class Apublic: void display() coutxendl; int getx() return x; friend class B;private: int x;class Bpublic: void set(int i); void display() coutendl; private

7、: A a;void B:set(int i) =i;5.5.15.5.2常成员函数声明格式:类型说明符 函数(参数表)const;注意: const是函数类型的一个组成部分。 常成员函数不能更新对象的数据成员,也不能调用该类中没有用const修饰的成员函数。 常对象只能调用它的常成员函数。 const可用于对重载函数的区分。例如, void print(); void print() const;这是对print的有效重载。在UML中,常成员函数前添加。例5-7 常成员函数举例。图5-6 包含常成员函数的R类的UML图R r1 : int r2 : int+R(rr1 : int, rr2

8、: int)+print() : void+print() : void#include using namespace std;class Rpublic: R(int rr1,int rr2):r1(rr1),r2(rr2) void print(); void print() const;常数据成员类的成员数据也可以是常量。使用const说明的数据成员为常数据成员。任何函数中都不能对常数据成员赋值。构造函数对常数据成员进行初始化,就只能通过初始化列表。在UML中,常数据成员前添加const。例5-8 常数据成员举例。图5-7 包含常数据成员的A类的UML图A a : const int

9、b : const int=10+A(i : int)+print() : void#include using namespace std;class Apublic: A(int i); void print();private: const int a;5.5.35.6.1 C文件)类实现文件(*.cpp文件)类的使用文件(*.cpp,主函数文件)每个源程序文件称为一个编译单元。C+语法要求一个类的声明必须出现在所有使用该类的编译单元中。惯用的做法将类的声明写在头文件中,使用该类的编译单元则包含这个头文件。例5-10 具有静态数据、函数成员的Point类,多文件组织。-8 C文件,也可以

10、是.cpp文件。#include两上书写方式#include,按照标准方式搜索要嵌入的文件,该文件位于C+系统目录的include子目录下,一般包含系统提供的标准文件时采用这样的方式。#include文件名,首先在当前目录下搜索要嵌入的文件,若没有,再按照标准方式搜索,对用户自己编写的文件一般采用这种方式。在使用多文件结构时,注意内联函数的特殊性一个内联函数,需要在每个调用它的编译单元中给出一个完全一致的实现。惯用的做法是将内联函数的实现写在头文件中,由调用的编译单元包含这个头文件。5.6.2 外部变量与外部函数P170用extern声明外部变量。外部变量是具有文件作用域的变量,定义在所有文件之外。声明一个外部变量时,可以同时定义它,也可以只是引用一个在别处声明的外部变量。外部函数非成员函数具有文件作用域,可以在不同的编译单元被调用,只要在调用之前声明函数原型即可。可以在声明函数原型或定义函

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1