当前位置:首页
开发技术指南» 文章正文
    引言:
 

 

 ·ems quickexport 怎么用    »显示摘要«
    摘要: ems quickexport 怎么用? 我想用qexportdbf,但不懂怎么用? ......
 ·关于stl的警告信息    »显示摘要«
    摘要: 我在用stl编程时,每次编译都会出300多个这样的警告信息(郁闷啊): std::reverse_iterator<std::pair<char,std::basic_string<char,std::char_traits<c har>,std::allocator<char> > > const *,std::pair<cha......


什么是非平凡(nontrivial)的析构函数啊

什么是非平凡

class   Test  
  {  
        int*   p;  
  }  
  这时析构函数就不能是trivial的,因为它必须把p申请的内存释放掉!  
  而如果class   Test  
  {  
        int   p;  
  }  
  析构函数可以什么也不做,就是trivial的。

NO.2   作者: yonk

nontrivial需要你自己负责处理的一些问题,诸如内存的释放。因为编译器产生的析构函数  
  只是满足编译器的需要,而不是程序的需要。所以对于程序所需要的功能,需要你自己来处理。

NO.3   作者: TonyAmanda

那么NonTrivial就是需要处理程序员自己惹得麻烦事的析构函数咯?

NO.4   作者: pengzhenwanli

我估计你是看C++沉思录中看到的。  
  nontrivial   也就是非无效的,我认为是如果你改写了这个析构函数,那么这个析构函数就是nontrivial,也就是需要基类的相应函数为virtual

NO.5   作者: panda_lin

JJHou的《STL源码剖析》也讲到了这个问题,而且解释的比较清楚。  
 


    摘要: javascript是否能判断当前浏览器是否最大化,最小化或正常状态? 能否判断工具栏,地址栏是否开启? 我不会,可很想知道,高手告诉我好吗? ......
» 本期热门文章:
· 热门栏目:
» 相关精选文章
» 其它相关:

©2000-2007 All Rights Reserved. 最佳浏览:1024X768 MSIE