C++怎么定义析构函数
这篇文章主要讲解了“C++怎么定义析构函数”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“C++怎么定义析构函数”吧!
在五华等地区,都构建了全面的区域性战略布局,加强发展的系统性、市场前瞻性、产品创新能力,以专注、极致的服务理念,为客户提供网站设计、成都网站设计 网站设计制作按需网站开发,公司网站建设,企业网站建设,成都品牌网站建设,网络营销推广,外贸网站制作,五华网站建设费用合理。
如果一个类需要明确的销毁动作,定义析构函数
Reason(原因)
析构函数在对象的生命周期结束时被隐式调用。如果默认的析构函数已经足够,没有必要另外定义。只有在一个类需要其成员析构函数处理之外的动作时定义非默认的析构函数。
Example(示例)
template
struct final_action { // slightly simplified
A act;
final_action(A a) :act{a} {}
~final_action() { act(); }
};
template
final_action finally(A act) // deduce action type
{
return final_action{act};
}
void test()
{
auto act = finally([]{ cout << "Exit test\n"; }); // establish exit action
// ...
if (something) return; // act done here
// ...
} // act done here
final_action唯一的目的就是让一段代码(通常是lambda表达式)在final_action被销毁时执行。
Note(注意)
通常有两种情况类需要用户定义析构函数。
string s;
int i;
vector
};
默认的析构函数可以做得更好,更有效,还不会有错。
Note(注意)
如果需要默认析构函数,但是其产生已经被抑制(例如由于定义了移动构造函数),使用=default(明确要求生成,译者注)。
Enforcement(实施建议)
寻找可能的“隐式资源”,例如指针和引用。寻找有析构函数的类,即使它们所有的数据成员都有析构函数。
感谢各位的阅读,以上就是“C++怎么定义析构函数”的内容了,经过本文的学习后,相信大家对C++怎么定义析构函数这一问题有了更深刻的体会,具体使用情况还需要大家实践验证。这里是创新互联,小编将为大家推送更多相关知识点的文章,欢迎关注!
当前名称:C++怎么定义析构函数
文章来源:http://hbruida.cn/article/ieogpj.html