实验三--类和对象(三).doc

  1. 1、本文档共12页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
实验三 类与对象㈢——静态成员、常量成员、友元、对象成员 一、实验目的 1.理解静态数据成员、静态成员函数的作用,熟悉其应用; 2.理解常量对象、常量数据成员、常量成员函数作用,熟悉相互关系及应用; 3.熟悉友元函数、友元类的定义及应用; 4.熟悉对象成员(容器类)的应用; 5.进一步熟悉类与对象的应用及编程。 二、实验学时 课内实验:2课时 课外练习:2课时 三 本实验涉及的新知识 ㈠ 静态成员 静态成员分为静态数据成员及静态成员函数。 1.静态数据成员 ⑴ 静态数据成员的定义(类中定义) 格式: static 类型 数据成员名表; ⑵ 静态数据成员的作用 静态数据成员在一个类中只有一个拷贝,属于一个类(或者说属于类的第一个对象),所有对象都共享静态成员。 静态数据成员是连接各个对象的桥梁,可用来取代全局变量,主要用于各个对象都共享的公用数据,如:总数的统计、平均数等。 ⑶ 说明 ① 静态数据成员可以说明为公有成员、私有成员或保护成员,但一般不说明为公有成员; ② 静态数据成员同其它数据成员一样,不能在类中进行初始化(不分配内存空间); ③ 静态数据成员由于属于类(不依赖任何对象),应在程序开始运行时即生成,必须在任何函数之外进行初始化操作; 格式: 类型 类名::静态数据成员=初值; ④ 使用静态数据成员取代全局变量,使数据更为安全; ⑤ 当在类中需要共享某一数据成员时通常定义为静态数据成员; ⑥ 静态数据成员与静态对象是两个完全不同的概念,前者(静态数据成员)是在类中定义的,是类的所有对象共享的数据成员,而后者(静态对象)是指对象存储在静态存储区。 2.静态成员函数 ⑴ 静态成员函数的定义 静态成员函数是在定义类的成员函数时,在成员函数名前加上static。 ⑵ 静态成员函数的调用方法 ① 用类名调用 格式: 类名::静态成员函数名(实参表); ② 用对象调用 格式: 对象名.静态成员函数名(实参表); ⑶ 说明 ① 静态成员函数可以在类内部定义(必须加上static),也可在类外定义,即在类体内声明,在类体外定义,定义时与普通成员函数相同; ② 静态成员函数无this指针(this指针属于某一对象,静态成员属于一个类),只能访问静态数据成员,不能访问普通数据成员,因此静态成员函数专门用来访问静态数据成员; ③ 当在类中定义有静态数据成员时,通常应定义静态成员函数来访问静态数据成员。 ㈡ 常量成员函数、常量数据成员及常量对象 在C++中可以用const定义常量对象(也称为常对象)、常量成员函数(也称为常成员函数)、常量数据成员(也称为常数据成员)。 1.常量成员函数的定义 ⑴ 在类中定义: 返回类型 成员函数名(参数表) const { 函数体 } ⑵ 在类外定义 类中声明: 返回类型 成员函数名(参数表) const ; 类外定义: 返回类型 类名::成员函数名(参数表) const { 函数体 } 2.常量数据成员的定义 定义格式: const 数据类型 成员名 或: 数据类型 const 成员名 3.常量对象的定义 定义格式: 类名 const 对象名表; 或: const 类名 对象名表 4.说明 ⑴ 常量对象只能在定义时初始化,其数据成员的值不能改变。 ⑵ 常量对象只能调用常量成员函数,不能调用普通成员函数;而普通对象既可调用普通成员函数,也可以调用常量成员函数。 ⑶ 普通成员函数可以访问本类的常量成员函数,而常量成员函数不能访问本类的普通成员函数。 ⑷ 常量成员函数与普通成员函数同名时,构成函数的重载,其参数类型和个数可以相同,而用const加以区分。 ⑸ 常量数据成员必须在构造函数中通过初始化列表进行初始化,初始化后值不能改变。 ⑹ 常量数据成员及成员函数隶属于某一对象(与静态数据成员的差异)。 ㈢ 友元 1.友元的概念 在C++中提供了一种类以外的函数访问类的私有成员、保护成员的方法,即将这些函数定义为类的友元。 2.友元的种类及应用 ⑴ 友元函数 定义方法:在类中进行声明时,在声明的前面加上friend。 说明: ① 友元函数不是类的成员函数,除非确因成员函数使用频繁,需要提高程序的执行效率而定义为友元函数外,一般不要定义。 ② 友元函数可以访问对象的私有成员和保护成员,只是在类中声明时加上friend,但它不是成员函数,定义时不能在函数名前加上“类名::”。 ③ 友元函数无this指针,一般至少应带有一个入口参数,通过入口参数传递的对象名来引用该对象的成员。 ④ 友元函数主要用于运算符的重载。 ⑵ 友元成员 友元成员是指一个类的成员函数可以是另一个类的友友元函数,这样就可以通过一个类的成员函数访问另一个类的私有成员或保

文档评论(0)

js1180 + 关注
实名认证
内容提供者

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

1亿VIP精品文档

相关文档