|
知识路径: > 嵌入式系统软件基础知识 > 嵌入式系统程序设计 > 嵌入式程序设计语言 > 嵌入式C/C++程序设计要求 > C++程序设计基础 > 类与对象 > 构造函数和析构函数 >
|
相关知识点:2个
|
|
|
|
程序运行时创建的每个对象只有在初始化后才能使用。对象的初始化包括初始化对象的数据成员以及为对象申请资源等。对象消亡前,往往也需要执行一些操作,例如归还对象占有的空间。
|
|
|
C++中定义了一种特殊的初始化函数,称之为构造函数。当对象被创建时,构造函数自动被调用。构造函数的名字与类名相同,它没有返回类型和返回值。当对象创建时,会自动调用构造函数进行初始化。例如:
|
|
|
|
注意:对构造函数的调用是对象创建过程的一部分,对象创建之后就不能再调用构造函数了。例如,下面的调用是错误的。
|
|
|
|
构造函数也可以重载,其中,不带参数(或所有参数都有默认值)的构造函数称为默认构造函数。
|
|
|
对于常量数据成员和引用数据成员(某些静态成员除外),不能在声明时进行初始化,也不能采用赋值操作对它们进行初始化。例如,下面对y和z的初始化是错误的。
|
|
|
|
可以在定义构造函数时,在函数头和函数体之间加入一个对数据成员进行初始化的表来实现。例如:
|
|
|
|
当创建A的对象时,对象的数据成员y初始化成10,数据成员初始化成引用数据成员x。同理,x初始化为0的处理也可放在初始化表中。
|
|
|
如果类中有常量数据成员或引用数据成员,并且类中定义了构造函数,则一定要在定义的所有构造函数的成员初始化表中对它们进行初始化。
|
|
|