C++构造函数和析构函数

来源:互联网 发布:阿里妈妈淘宝联盟佣金 编辑:程序博客网 时间:2024/06/05 05:23

<构造函数>

构造函数是一种能自动化对象的特殊成员函数。当创建了对象,就会执行构造函数,完成对对象的初始化。

构造函数是用类名定义的,在定义时不有指定返回类型。构造函数可以在类中声明并定义,也可以在类中声明而在类外定义。

运算符new:

动态地建立一个对象,new将返回这个对象的指针。由于类名被视为一个类型名。所有使用new建立动态对象的过程和建立动态变量的过程相似,只不过是new需要和构造函数一起使用。

当使用new创建一个动态的对象或数组时,在使用完后需要用delete进行内存空间的释放。

缺省构造函数(无参函数)

不带参数的构造函数又称缺省函数,

colck::Clock()

{

}

 带参数 的构造函数。

在定义构造函数时,一般都需要给构造函数添加参数,用于成员变量的赋值。

构造函数可以被重载。C++会根据构造函数声明中的参数选择合适的构造函数进行调用。


析构函数:

析构函数用于在对象注销时执行一些清理工作。

 析构函数名和类名相同,要在析构函数名之前加一个波浪号~,以区别构造函数,在定义析构函数时,不能指定任何返回类型,这点同构造函数相同。另外析构函数不能指定参数,因此,从函数重载的角度看,一个类只能有一个析构函数。

调用析构函数的顺序,是和程序调用构造函数的顺序是相反的,即先建立的对象最后被析构,后建立的对象先被析构。

构造函数是不允许自己调用的。是由系统调用的。new  是调用构造函数的。

缺省析构函数


每个对象都有一个构造函数一亲,每个对象也都有一析构函数,如果在定义类时没有给出析构函数的定义,则c++编译器也会为这个类生成一个缺省的析构函数,它的具体格式是:

Clock::~Clock()

{

}