C++中的指针用法总结定义.pdfVIP

  1. 1、本文档共6页,可阅读全部内容。
  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文档。上传文档
查看更多
C++ 中的指针用法总结 出处:多特软件站时间: 2011-06-24 人气: 45 我要提问我来说两句 核心提示: C++ 程序设计重要基础就是类和对象,对象指针是很重要的一部分 C++ 程序设计重要基础就是类和对象,对象指针是很重要的一部分,包括指向对象的指针、指向对象 成员的指针、 this 指针、指向对象的常指针、指向常对象的指针等。 1 、指向对象的指针 定义:对象空间的起始地址就是对象的指针。 说明:在建立对象时,编译系统就为每个对象分配一定的存储空间以存放其成员,不过注意,在一般 情况下不同对象的数据存储单元中存放的数据成员是不相同,而不同对象的函数代码却是相同的,也就是 说,它们的函数代码是共享的。这时我们可以定义一个指针变量用来存放对象的指针。 定义指向类对象的指针变量的一般形式是: 类名 * 对象指针名 ; 如对于与个 Time 类对象,我们可以有: 我们就可以通过对象指针访问对象和对象的成员, 假如所定义的类中有数据成员 hour 、minute 、sec, 成员函数有 gettime() ,则 p-hour 与(*p).hour 等价即为 p 指向对象中的 hour 成员,相当于 t.hour (*p).gettime() 即为 p 指向对象中的成员函数 gettime(), 相当于 t.gettime() 也可以用如下形式: p-hour 和 p-gettime() 和上面是等价的。 2 、指向对象成员的指针 (1) 指向对象数据成员的指针 在 C 中我们学过指向普通变量的指针变量,在 C++ 中定义指向对象数据成员的指针变量的方法和定 义指向普通变量的指针变量方法相同,其一般形式为: 数据类型名 * 指针变量名 ; 如: (2) 指向对象成员函数的指针 定义指向对象成员函数的指针变量和定义指向普通函数的指针变量不同。 在定义指向普通函数的指针变量时我们可以这样定义: 然而编译系统要求在将函数地址赋给指针变量时必须满足三个条件: 函数参数类型及个数要匹配 函数返回值的类型要匹配 所属的类要匹配 显然在上面的 p 与类是无关的。为了满足第三条,我们可以为指针指定类,故定义指向对象成员函数 的指针变量一般形式为: 数据类型 ( 类名 ::* 指针变量名 )( 参数表列 ); 可以让指针指向公用的成员函数,如: 注意:因为成员函数不存放在对象空间中,多个同类对象共享此成员函数代码,所以在将成员函数的 入口地址赋给指针变量是应写成: 指向对象成员函数的指针变量 = 类名 :: 成员函数名 ; 在成员函数名后面没有 (), 如果写成 p=Time::gettime() 是错误的。 [nextp 3 、this 指针 在每个成员函数中都包含了一个特殊的指针,称为 this ,它是指向本类对象的指针,它的值是当前被调用 成员函数所在对象的起始地址。之所以有这个指针,是因为为了保证同类的不同对象的成员函数引用的是 指定对象中的数据成员,它是系统自动实现的。 如定义一个求体积的函数 假如已经定义了对象 t ,当调用成员函数 t.vol() 时,编译系统就把对象 t 的起始地址赋给 this 指针, 于是在成员函数引用数据成员时,根据指针 this 就可以引用到对象 t 的数据成员。所以 C++ 把上面的函 数处理成 由于 this 的值是当前被调用成员函数所在对象的起始地址,所以可以写成 所以在调用成员函数 t.vlo() 时,实际的调用方式为 t.vol(t), 不过对象 t 的地址传给 this 指针是由系 统自动完成的,不需人为加上。 4 、指向对象的常指针 将指向对象的指针变量声明为 const 型且进行处始化,这样指针值始终保持为其初值,不能改变其指 向。 如: 由上面我们可以看出定义指向对象的常指针的一般形式为: 类名 *const 指针变量名 = 对象的起始地址 ; 注意:指向对

文档评论(0)

蔡氏壹贰 + 关注
实名认证
文档贡献者

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

1亿VIP精品文档

相关文档