以前用VS 6和VS2003,類向?qū)傻亩际翘撐鰳?gòu)函數(shù),但是到了VS2005,默認(rèn)就不是虛析構(gòu)函數(shù)了。
這會(huì)帶來什么問題?我今天就遇到了一次。當(dāng)我用VS2005類向?qū)梢粋€(gè)類,如
class BaseClass
{
public:
????BaseClass(){};
???~BaseClass(){};
???virtual void VFun() = 0;
}
然后,再生成一個(gè)類繼承于他
class ProblemClass : public?BaseClass
{
public:
????ProblemClass (){};
???~ProblemClass (){};
???virtual void VFun(){};
}
然后,執(zhí)行以下代碼:
BaseClass *pClass = new ProblemClass ;
delete pClass ;
如無以外,在delete的時(shí)候就會(huì)出現(xiàn)堆錯(cuò)誤