一3数据的共享与保护分析.ppt

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
一3数据的共享与保护分析

C++程序设计 第3章 数据的共享与保护 本章主要内容 共用数据的保护 对象的赋值与复制 静态成员 友元 §3.1共用数据的保护 共用数据的保护:为保证数据在一定范围内共享,同时又保证它不被任意修改 一、常对象: 定义一般形式 类名 const 对象名[(实参表列)]; 或 const 类名 对象名[(实参表列)]; 例:const Box box1(1,1,1); 常对象的所有数据成员的值都不能被修改,也不能调用该对象的非const型的成员函数。 二、常对象成员 在声明类时将成员声明为const 1.常数据成员 const 类型 数据成员名; 例:const float length; length 为常数据成员,它的值不能发生改变 常数据成员只能通过构造函数的参数初始化表对常数据成员进行初始化。 在类体中声明一个常数据成员后,该类所有对象此常数据成员的值都不能改变 2.常成员函数 声明形式:类型 函数名(参数表列) const; 定义形式:类型 函数名(参数表列) const { 函数体 } 常成员函数只能引用本类的数据成员,但不能修改数据成员 常成员函数可以引用const数据成员,也可以引用非const数据成员; const数据成员可以被const成员函数引用,也可以被非const成员函数引用; 三、指向对象的常指针 定义一般形式: 类名 *const 指针变量名=对象地址; 例: Box box1(1,1,1); Box *const p1=box1; 指针变量的指向关系不变,始终指向一个对象,但可以改变其所指对象中数据成员的值。 常用来做函数的形参,目的是不允许在函数调用的过程中改变指针变量的值。 四、指向常对象的指针变量 1.指向常变量的指针变量 定义一般形式: const 类型名 *指针变量; 例:const int a; const int *pt=a; 说明: 常变量只能用指向常变量的指针变量来指向 指向常变量的指针变量还可以用来指向非const变量 此时不能通过指针改变指针所指向变量的值 2.指向常对象的指针变量 定义形式:const 类名 *指针变量名; [例]读程改错 五、对象的常引用 引用:变量或对象的引用就是变量或对象的别名。 对象的常引用:const 类名 引用对象名; 常作函数的形参,保证在函数调用过程中不改变引用对象的值。 §3.2 对象的赋值 对象的赋值: 一般形式:对象名1=对象名2; 说明: 对象的赋值只对其中的数据成员赋值,而不对成员函数赋值; 类的数据成员中不能包括动态分配的数据。 对象的复制 一般形式:类名 对象2(对象1); 例:Box box2(box1); 含义:用box1对象复制出一个box2对象 另一种复制形式: 类名 对象2=对象1; 是建立新对象的一种方法 用这种方法建立对象时要调用一个特殊的构造函数—复制构造函数(copy constructor) 复制构造函数 功能:用一个已知的对象来初始化一个被创建的同类对象; 特点 函数名同类名,无返回值和函数类型; 只有一个参数,是对某个对象的引用; 类名::类名(const 类名 引用名) 每个类都必须有一个复制构造函数; 如果类中没有说明复制构造函数,则编译系统自动生成一个具有上述形式的缺省拷贝初始化构造函数,作为该类的公有成员; [例] 调用复制构造函数的三种情况 明确表示由一个对象复制另一个对象时; 例如:Box box1(box2); 当对象作为函数实参传递给函数形参时(传值调用); 例如:fun(box1); 当对象作为函数返回值时(数据值); 例如:return box1; §3.3 静态成员 目的:解决数据共享问题,即不通过全局对象,而实现同类多个对象之间的数据共享。 一、静态数据成员 一、静态数据成员(续) 一、静态数据成员(续) [例]分析下列程序的输出结果。 二、静态成员函数 二、静态成员函数(续) [例] 分析下列程序的输出结果。 §3.4 友元 一、友元函数 [例] 分析下列程序的输出结果。  友元成员函数 二、友员类 [例]分析下列程序的输出结果。 实验二 验证例题 调试(实验指导书P145) 三 调试(实验指导书P164) 3(1),3(2) * *中北大学计算机系基础教研室 * ?2013-2 North University of China * void main() { void fun(const Box *p)

您可能关注的文档

文档评论(0)

33qwer + 关注
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档