- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
* 例8-8:为Person类增加构造函数与析构函数 * 作业 1. 在VC6.0环境下运行例8-8,验证构造函数与析构函数特性,并将代码附在实验报告中。 2. 完成第10章 习题四-1、四-2,并将完整代码附在实验报告中。 作业(以实验报告形式完成,截止提交日期5月4日) * 8.5 对象与指针 对象作为包含数据成员和成员函数的复合数据类型的变量,也可以通过指针来访问。 8.5.1 指向对象的指针 8.5.2 指向对象成员的指针(了解) 8.5.3 this指针 * 8.5.1 指向对象的指针 在创建对象时系统会分配存储空间用以保存对象的数据成员,因此可以用指针来指向这块空间中保存的对象。 声明格式:类名 *对象指针名; 例: Person person1; Person *ptr=person1; 通过指向对象的指针访问对象的成员要用 “-”。 例: ptr - Showme(); 等价person1. Showme(); 等价( *ptr ) . Showme(); 用new动态创建对象必须用指针指向它,并用delete释放指针指向的空间的对象。 *运算符出现在指向对象的指针前面,表示对象本身。 指向对象的指针用来存放对象存储空间的首地址。 例: Person *ptr=new Person; delete ptr; * 例8-9:使用动态存储实现8-8中程序的功能 只需修改主函数部分即可。 * 8.5.2 指向对象成员的指针(了解) 对象的成员也有地址,可以声明指向对象成员的指针变量,指向对象中公有的数据成员或成员函数。 例:对于8-4中声明的Date类,可以进行下列操作: Date date1; int *p; p=date1.year; *p=2006; 说明:对象的指针只能访问对象的公有成员,而指向对象成员的指针也只能访问公有成员。 * 8.5.3 this指针 C++中每一个类的成员函数,都包含一个指向本类对象的指针,名为this指针。该指针包含了当前被调用的成员函数所在对象的起始地址,通过这个地址可以获得该对象的数据和成员函数,甚至它本身。 例:Date date1,date2; date1.init(yy,mm,dd); 即执行:this-year=yy; this-month=mm; this-day=dd; 调用date1的init函数,编译器会把对象的起始地址先赋予this指针,然后调用init函数 因为当前this指针指向date1,init函数实际执行的是date1.year=yy; date1.month=mm; date1.day=dd; * 在上例中this指针隐式地引用对象的数据成员和成员函数,此外,this指针也可以显示使用,与隐式使用是等价的。 例: Date::init(yy,mm,dd) { this-year=yy;this-month=mm;(*this).day=dd; } * 练习 第11章 课后题:四-2、五 作业(以实验报告形式完成,截止提交日期5月6日) * 8.6 类中的const修饰符 与普通变量一样,对象也可以用const修饰符修饰。C++规定,const对象只能访问用const修饰的成员函数。在const成员函数中不得修改类中的数据成员的值。 例: √ X const对象 普通成员函数 const成员函数 * 8.7 静态成员 在有些应用中,希望程序中同类对象共享某个数据成员。对此,一种解决方法是将所要共享的数据说明为全局变量,但这会破坏数据的封装性;较好的解决方法是将所要共享的数据说明为静态成员。 静态成员的说明位于类的定义中,使用关键字static。说明该类所有对象中的该成员实际上是同一个变量。编译器将其存放在静态存储区。 一般如果类中有静态数据成员,则将访问该成员的函数也说明为静态的。 * 8.8 友元 友元是C++提供的一种功能。它允许类外的函数访问类的私有成员。这样做的结果是:1. 提高了程序运行的效率。2. 破坏了类的封装性。 在实际应用中应少用或不用友元。 举例: class Person { …… friend void FriFunc( Person person );…… }; 当一个类声明为另一个类的友元时意味着该类的每个成员函数都是另一个类的友元函数。 包括类外的普通函数和某个类的成员函数。 这是友元函数访问类成员的唯一方法:即将参数设为对Person类的引用,可以利用该参数访问对象person的私有成员。因为友元函数虽然在类中声明,但不是类的成员函数。 友元类 * 练习(小组讨论形式) 第11章 课后题: 一(9、10除外)、二(3、4除外)
您可能关注的文档
最近下载
- 2025青岛版小学科学三年级上册1-5《制作动物分类图册》(教学课件)(新教材).pptx
- 标准图集-17J008 挡土墙(重力式、衡重式、悬臂式) 无水印.pdf VIP
- JJF(陕) 048-2021 一体化振动变送器校准规范.docx VIP
- 退药申请单.doc VIP
- 2025年中国镁铝尖晶石行业投资前景及策略咨询研究报告.docx
- 农牧民培训国家通用语言.pptx
- 2022年度国铁集团质量安全红线检查迎检实施方案(最终版) (2).pdf VIP
- 六年级数学上册第一单元圆基础测试题北师大.doc VIP
- (高清版)B/T 42584-2023 信息化项目综合绩效评估规范.pdf VIP
- 《建筑给水复合管道工程技术规程》CJJ@T155-2011.pdf VIP
文档评论(0)