首页 > 知识点
       构造函数和析构函数
知识路径:  > 嵌入式系统软件基础知识  > 嵌入式系统程序设计  > 嵌入式程序设计语言  > 嵌入式C/C++程序设计要求  > C++程序设计基础  > 类与对象
考试要求:掌握      相关知识点:8个      
               构造函数
               程序运行时创建的每个对象只有在初始化后才能使用。对象的初始化包括初始化对象的数据成员以及为对象申请资源等。对象消亡前,往往也需要执行一些操作,例如归还对象占有的空间。
               C++中定义了一种特殊的初始化函数,称之为构造函数。当对象被创建时,构造函数自动被调用。构造函数的名字与类名相同,它没有返回类型和返回值。当对象创建时,会自动调用构造函数进行初始化。例如:
               
               注意:对构造函数的调用是对象创建过程的一部分,对象创建之后就不能再调用构造函数了。例如,下面的调用是错误的。
               
               构造函数也可以重载,其中,不带参数(或所有参数都有默认值)的构造函数称为默认构造函数。
               对于常量数据成员和引用数据成员(某些静态成员除外),不能在声明时进行初始化,也不能采用赋值操作对它们进行初始化。例如,下面对y和z的初始化是错误的。
               
               可以在定义构造函数时,在函数头和函数体之间加入一个对数据成员进行初始化的表来实现。例如:
               
               当创建A的对象时,对象的数据成员y初始化成10,数据成员初始化成引用数据成员x。同理,x初始化为0的处理也可放在初始化表中。
               如果类中有常量数据成员或引用数据成员,并且类中定义了构造函数,则一定要在定义的所有构造函数的成员初始化表中对它们进行初始化。
               析构函数
               当对象销毁时,会自动调用析构函数进行一些清理工作。析构函数也与类同名,但在名字前有一个“~”,析构函数也没有返回类型和返回值。析构函数不带参数,不能重载。
               若一个对象中有指针数据成员,且该指针数据成员指向某一个内存块,则在对象销毁前,往往通过析构函数释放该指针指向的内存块。对象的析构函数在对象销毁前被调用,对象何时销毁也与其作用域有关。例如,全局对象是在程序运行结束时销毁,自动对象是在离开其作用域时销毁,而动态对象则是在使用delete运算符时销毁。析构函数的调用顺序与构造函数的调用顺序相反。当用户未显式定义构造函数和析构函数时,编译器会隐式定义一个内联的、公有的构造函数和析构函数。默认的构造函数执行创建一个对象所需要的一些初始化操作,但它并不涉及用户定义的数据成员或申请的内存的初始化。
 
 相关知识点:
 
软考在线指南
优惠劵及余额
在线支付
修改密码
下载及使用
购买流程
取消订单
联系我们
关于我们
联系我们
商务合作
旗下网站群
高级资格科目
信息系统项目管理师 系统分析师
系统架构设计师 网络规划设计师
系统规划与管理师
初级资格科目
程序员 网络管理员
信息处理技术员 信息系统运行管理员
中级资格科目
系统集成项目管理工程师 网络工程师
软件设计师 信息系统监理师
信息系统管理工程师 数据库系统工程师
多媒体应用设计师 软件评测师
嵌入式系统设计师 电子商务设计师
信息安全工程师
 

本网站所有产品设计(包括造型,颜色,图案,观感,文字,产品,内容),功能及其展示形式,均已受版权或产权保护。
任何公司及个人不得以任何方式复制部分或全部,违者将依法追究责任,特此声明。
本站部分内容来自互联网或由会员上传,版权归原作者所有。如有问题,请及时联系我们。


工作时间:9:00-20:00

客服

QQ 486577830

点击这里给我发消息

商务合作

QQ 486577830

点击这里给我发消息

客服邮箱service@rkpass.cn


京B2-20210865 | 京ICP备2020040059号-5 |京公网安备 11010502032051号 | 营业执照 | Copyright ©2000-2026 All Rights Reserved 软考在线版权所有