我有一个简单的 C++ 代码,但我不知道如何使用析构函数:
class date {
public:
int day;
date(int m)
{
day =m;
}
~date(){
cout << "I wish you have entered the year \n" << day;
}
};
int main()
{
date ob2(12);
ob2.~date();
cout << ob2.day;
return 0;
}
我的问题是,我应该在析构函数代码中写什么,调用析构函数后,它将删除day
多变的?
您很少需要显式调用析构函数。相反,当对象被销毁时,就会调用析构函数。
对于像这样的对象ob2
这是一个局部变量,当它超出范围时它就会被销毁:
int main()
{
date ob2(12);
} // ob2.~date() is called here, automatically!
如果您使用动态分配对象new
,当对象被销毁时调用它的析构函数delete
。如果您有一个静态对象,则当程序终止时(如果程序正常终止)将调用其析构函数。
除非你使用动态创建一些东西new
,你不需要做任何明确的事情来清理它(所以,例如,当ob2
被销毁时,它的所有成员变量,包括day
,被摧毁)。如果您动态创建某些东西,则需要确保它在完成后被销毁;最佳实践是使用所谓的“智能指针”来确保自动处理此清理工作。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)