本文主要解释“C如何定义析构函数”。本文的解释简单明了,易学易懂。请跟随边肖的思路一起学习学习《C如何定义析构函数》!
如果一个类需要明确的销毁动作,定义析构函数
00-1010析构函数在对象生命周期结束时被隐式调用。如果默认析构函数足够了,就不需要单独定义了。非默认析构函数仅在类需要其成员析构函数处理的动作之外的动作时定义。
Reason(原因)
模板类型名A
struct final_action { //略有简化
一种行为;
final _ action(A): act { A } { }
~ final _ action(){ act();}
};
模板类型名
final_actionA最后(A act) //演绎动作类型
{
返回final _ actionA { act };
}
空隙测试()
{
auto act=finally([]{ cout ' Exit test \ n ';});//建立退出操作
//.
如果(某物)回来;//在此完成动作
//.
}//在这里完成act final_action的唯一目的是在final _ action被销毁时让一段代码(通常是lambda表达式)执行。
Example(示例)
通常有两个案例类需要用户定义的析构函数。
ul类='
由类管理的资源不表示为包含析构函数的类。例如向量或事务类。
类的主要目的是在析构时执行一个动作。例如示踪剂和最终动作。
Note(注意)
类Foo { //坏;使用默认析构函数
公众号:
//.
~ Foo(){ s=' ';I=0;VI . clear();} //清理
私人:
字符串s;
int I;
矢量VI;
};默认析构函数可以做得更好,更有效,没有错误。
00-1010
Example, bad(反面示例)
Note(注意)
寻找可能的“隐式资源”,例如指针和引用。寻找带有析构函数的类,即使它们的所有数据成员都有析构函数。
感谢阅读。这就是《C如何定义析构函数》的内容。学习完这篇文章,相信你对C如何定义析构函数有了更深的理解,具体用法还需要实践验证。在这里,边肖将为您推送更多关于知识点的文章,敬请关注!
内容来源网络,如有侵权,联系删除,本文地址:https://www.230890.com/zhan/124814.html