对象数组、静态成员、友元.pptVIP

  1. 1、本文档共33页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
主要内容 对象数组 静态成员数据 静态成员函数 友元函数 友元类 指向对象的指针 指向类中成员数据的指针 指向类中非静态成员函数的指针 指向类中静态成员函数的指针 指向对象的常指针、指向常对象的指针 常对象、对象的常引用 类中的常成员━━常成员数据、常成员函数 对象数组 对象数组:数组是一组相同类型的元素组成的集合体,而数组元素的类型当然可以是已定义的类类型,这种由同类对象组成的数组称为对象数组。对象数组中的一个元素就是同类的一个对象。 对象数组的定义: 类名 数组名 [ 元素个数 ] ; 对象数组元素的引用: 数组名 [ 下标 ] 对象数组元素的成员的引用: 数组名 [ 下标 ] . 成员名 对象数组的初始化: ①对象数组中的每一个元素对象被创建时,系统都会调用一次构造函数来初始化该元素对象。若没有为某一数组元素对象显式指定初始值,则调用的是默认构造函数初始化该数组元素对象。 【例】 Point p[ 2 ] ; //调用了两次默认构造函数 ②定义对象数组时,通过初始化列表。 【例】 Point p[ 2 ] = { Point( 1 , 2 ) , Point( 3 , 4 ) } ; 静态成员数据 类的静态成员:指类中由static修饰的成员,有静态成员数据、静态成员函数。类的静态成员为该类所有对象所共享。 静态、非静态成员数据的区别: ①定义类时,系统并不为类中的成员数据分配存储空间。 ②定义对象时,才依次为对象的每一个非静态成员数据分配存储空间,并把该对象所占用的存储空间作为一个整体来看待。同类的不同对象,其非静态成员数据之间是互相独立的。 ③定义对象时,系统并不为对象的静态成员数据分配存储空间!静态成员数据是同类所有对象所共享的成员,系统需要单独为类的静态成员数据分配存储空间。 静态成员数据的特征:静态成员数据是同类所有对象所共享的成员,当该类的任一对象修改了该静态成员数据,同类其他对象中的该静态成员数据也都之改变。 静态成员数据的作用:提供同类的各个对象之间信息交换的捷径。 静态成员数据的声明 在类中作引用性声明: class 类名 { … … static 类型 静态成员数据名 ; } ; 在类外、文件作用域的位置作一次且仅能作一次定义性声明: 类型 类名 :: 静态成员数据名 《 = 初值 》 ; 几点说明: ①静态成员数据存放在静态区,系统在编译时就为其分配好空间。 ②若静态成员数据在定义性声明时未做初始化,其初值为0。 ③在类外作定义性声明时,前面不要加static。 ④静态成员数据具有全局变量的一些特性,但受到访问权限的约束,建议将静态成员数据声明为私有,以保证类的封装性。若将其声明为公有,会带来与全局变量同样的副作用。 静态成员数据的引用 在类中: 直接通过静态成员数据名访问即可。 在类外: (只能引用类中的 public 静态成员数据 ) ①通过类名: 类名 :: 静态成员数据名 ②通过对象名: 对象名 . 静态成员数据名 ③通过对象引用名: 对象引用名 . 静态成员数据名 ④通过对象指针名: 对象指针 - 静态成员数据名 静态成员函数 静态、非静态成员函数的区别: ①每一个非静态的成员函数中都包含了一个this指针,通过指向当前对象的指针this,才能直接引用到所操作对象的非静态成员数据。 ②静态成员函数和静态成员数据一样,与对象无关。由于静态成员函数中不包含this指针,因此不能直接引用到对象的非静态成员,只能直接引用类的静态成员数据或静态成员函数。 ③静态成员函数若要访问本类对象的非静态成员,可间接实现,即在定义该静态成员函数时,增加一个形参为本类对象的引用,这样在函数体内就可以通过对象的引用名引用到该对象的非静态成员。 ④关键字static只是用在类中声明某成员是静态成员;若在类外作定义性声明,则前面不要加static。 ⑤C++在定义类的对象时,物理上同类所有对象的成员函数只存储一份代码,所以一般情况下声明静态成员函数没有什么明显好处,通常没有必要声明静态成员函数。 静态成员函数的声明和调用 在类中可作引用性声明或定义性声明:

文档评论(0)

beautyeve + 关注
实名认证
文档贡献者

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

1亿VIP精品文档

相关文档