C++构造器,析构器 什么意思
来源:百度知道 编辑:UC知道 时间:2024/05/16 18:07:33
构造器,就是构造函数,是在创建一个对象的时候由系统自动调用的。
例如,int a;这个时候就调用int的构造函数,创建了一个int型的对象a.
再多说一个,int a=10;这个时候实际是做了两个操作,第一是调用构造函数创建a,然后调用int的=操作符,给a赋值。
int *p = new int();这个时候也会调用构造函数。
对于你自己写的类,如果你没有自己写构造函数,编译器会自动给你产生一个构造函数,让你调用。
析构器,也就是析构函数,当一个对象在消亡的时候,由编译器自动调用。对于系统自带的类型,例如int,char等,它的析构函数是由编译器提供的,对于你自己定义的类,它的析构函数是你自己写的。
对象在什么时候消亡呢?
对于普通的对象来说,就是在离开它的作用域的时候,比如你在一个函数里定义了一个对象,在跳出函数的时候,它就消亡了。
顺带说下new delete malloc free的区别,
int *p = new int();这个时候调用构造函数
delete p;这个时候调用析构函数
int *p = (int *)malloc(sizeof(int));这个时候不会调用构造函数
free(p);这个时候不会调用析构函数。
另外假如你定义一个类
class person{
public:
person();
persion(int age);
};
person myperson;这个时候会调用person();
person yourperson(10);这个时候会调用persion(int age);
关于构造器和析构器指的是c++中的构造函数和构析函数,他的主要用途就是在创建类的时候用到,构造函数和构析函数的定义有两种方法,一种就是什么也不做,使用默认的构造函数和构析函数,不过这种方法的局限性非常大,几乎没有什么用,第二种方法是自定义构造函数和构析函数,这种方法非常强大,能够充分的发挥构造函数和构析函数的强大功能,一