为什么要引入构造函数和析构函数?
1个回答
展开全部
因为C++是一个非常有趣的语言,他希望用户可以自己定义类型
他希望用户能把世间万物都抽象成对象来进行处理
有一些东西在创建的时候,是需要特别关注的
比如说你建立了一个数据库对象
那么这个数据库可以存什么样的数据,存多少数据,这些东西需要在创建之初就确定下来。所以使用构造函数,在程序一创建的时候就规定出来
而析构函数是在用户不需要这个对象的时候,销毁一些东西而准备的
比如说银行账户,你销卡了,银行就需要删除你这个账户,需要清除你的个人信息,需要关掉网银。这一系列的东西都是销毁一个账户所必须的步骤。那么这些步骤就集中在析构函数中处理
从初学者的角度来说。有的时候你创建一个对象,需要保存的信息是new出来的。比如说
class A
{
private:
char *name;
}
这个name是使用new出来的空间保存的。
那么构造函数里就可以写A(){name = new char[40];}
既然是new出来,为了防止内存泄露,我们必须归还这些申请的空间
那么在这个对象被销毁时,我们就需要调用析构函数
~A(){delete[] name;}
这样就非常方便,利于操作和理解,出错的几率也将大大降低
说了好多,求打赏
他希望用户能把世间万物都抽象成对象来进行处理
有一些东西在创建的时候,是需要特别关注的
比如说你建立了一个数据库对象
那么这个数据库可以存什么样的数据,存多少数据,这些东西需要在创建之初就确定下来。所以使用构造函数,在程序一创建的时候就规定出来
而析构函数是在用户不需要这个对象的时候,销毁一些东西而准备的
比如说银行账户,你销卡了,银行就需要删除你这个账户,需要清除你的个人信息,需要关掉网银。这一系列的东西都是销毁一个账户所必须的步骤。那么这些步骤就集中在析构函数中处理
从初学者的角度来说。有的时候你创建一个对象,需要保存的信息是new出来的。比如说
class A
{
private:
char *name;
}
这个name是使用new出来的空间保存的。
那么构造函数里就可以写A(){name = new char[40];}
既然是new出来,为了防止内存泄露,我们必须归还这些申请的空间
那么在这个对象被销毁时,我们就需要调用析构函数
~A(){delete[] name;}
这样就非常方便,利于操作和理解,出错的几率也将大大降低
说了好多,求打赏
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询