- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
举例:建立一个类NUM,求指定数据范围内的所有素数。 如: 定义类NUM的对象test,查找范围为100~200,正确的输出结果: num 21 101 103 107 109 113 127 131 …… 动态构造及析构对象数组 用new运算符来动态生成对象数组时,自动调用构造函数,而用delete运算符来释放p1所指向的对象数组占用的存储空间时,在指针变量的前面必须加上[ ], 才能将数组元素所占用的空间全部释放。否则,只释放第0个元素所占用的空间。 pa1 new A[3]; ..... delete [ ]pa1; class A float x,y; public: A float a 0, float b 0 x a; y b;cout 调用了构造函数\n; void Print void cout x \t y endl; ~A cout 调用了析构函数\n; ; void main void cout 进入main 函数\n; A *pa1; pa1 new A[3];//开辟数组空间 cout \n完成开辟数组空间\n\n; delete [ ]pa1; //必须用[]删除开辟的空间 cout 退出main 函数\n; 进入main 函数 调用了构造函数 调用了构造函数 调用了构造函数 完成开辟数组空间 调用了析构函数 调用了析构函数 调用了析构函数 退出main 函数 缺省的析构函数 若在类的定义中没有显式地定义析构函数时,则编译器自动地产生一个缺省的析构函数,其格式为: ClassName::~ClassName ; 任何对象都必须有构造函数和析构函数,但在撤消对象时,要释放对象的数据成员用new运算符分配的动态空间时,必须显式地定义析构函数。 实现类型转换的构造函数 同类型的对象可以相互赋值,相当于类中的数据成员相互赋值; 如果直接将数据赋给对象,所赋入的数据需要强制类型转换,这种转换需要调用构造函数。 class A float x,y; public: A float a,float b x a;y b;cout 调用构造函数\n; ~A cout 调用析构函数\n; void Print void cout x \t y endl; ; void main void A a1 1.0, 10.0 ; a1.Print ; a1 A 3.0 , 30.0 ; a1.Print ; cout 退出主函数\n; 调用构造函数 产生临时对象,初始化并赋值后立即释放 1 10 调用构造函数 调用析构函数 3 30 退出主函数 调用析构函数 注意:当构造函数只有一个参数时,可以用 强制赋值。 class B float x; public: B float a x a; cout 调用构造函数\n; ~B cout 调用析构函数\n; void Print void cout x endl; ; void main void B b1 1.0 ; b1.Print ; B b2 100; b2.Print ; b1 10; b1.Print ; cout 退出主函数\n; 调用构造函数 单参数可以这样赋值 1 调用构造函数 100 调用构造函数 调用析构函数 10 退出主函数 调用析构函数 调用析构函数 b1 B 10 产生一个临时对象 完成拷贝功能的构造函数 可以在定义一个对象的时候用另一个对象为其初始化,即构造函数的参数是另一个对象的引用,这种构造函数常为完成拷贝功能的构造函数。 完成拷贝功能的构造函数的一般格式为: ClassName::ClassName ClassName ...... // 函数体完成对应数据成员的赋值 * 第十章 构造函数和析构函数 构造函数和析构函数是在类体中说明的两种特殊的成员函数。 构造函数是在创建对象时,使用给定的值来将对象初始化。 析构函数的功能正好相反,是在系统释放对象前,对对象做一些善后工作。 构造函数是类的成员函数,系统约定构造函数名必须与类名相同。构造函数提供了初始化对象的一种简单的方法。 构造函数可以带参数、可以重载,同时没有返回值。 class A float x,y; public: A float a,float b x a; y b; //构造函数,初始化对象 float Sum void return x+y; void Set float a,float b x a; y b; Print void
您可能关注的文档
- 电力拖动整理精编.doc
- 七年级地理太阳系银河系和宇宙课稿.ppt
- 电力拖动自动控制(4.1)精编.ppt
- 第十章电力系统的静态稳定性介绍.ppt
- 电力拖动自动控制系统设计精编.doc
- 第十章二端口网络介绍.ppt
- 第十章非参数密度估计和回归介绍.ppt
- 第十章复合反应动力学介绍.ppt
- 第十章工艺集成介绍.ppt
- 电力系统B3精编.doc
- 2025年生物制造技术在环保涂料领域创新突破报告.docx
- 2025年智能宠物智能安抚灯用户满意度评估报告.docx
- 2025年工业用氢技术创新应用案例分析报告.docx
- 2025年工业物联网数据要素流通报告.docx
- 2025年低空经济飞行器机务保障报告.docx
- 2025年无人自动化智能巡检机器人在城市地下管网检测报告.docx
- 新能源电力系统升级核心:2025年储能电池技术创新与应用.docx
- 2025年心理咨询师操作性条件反射在行为塑造中的深度应用专题试卷及解析.pdf
- 2025年智能巡检机器人在变电站运维中的维护计划报告.docx
- 新能源产业2025政策解读:技术创新在新能源储能技术中的应用报告.docx
原创力文档


文档评论(0)