C++抽象基類的虛析構聲明

struct IRing
{
    virtual ~IRing(){};    
    virtual void printTable() = 0;
    virtual int add(int a,int b) = 0;
    virtual int mul(int a,int b) = 0;
    virtual int size() = 0;       
};
M2r::~M2r(){
#if 1
    int ID=IdRing(this);
    printf("R%d_%d: %s\n",size(),ID,__FUNCTION__);    
#endif    
    if(m_flag==1 && m_r!=NULL){
        delete m_r;
        m_r=NULL;
    }    
}   
int main()

    M2r* r4_7=new M2r();
    r4_7->initG(2);
    IRing* r=r4_7;
    delete r;// 如果抽象基類沒有加上虛析構聲明,那麼M2r對象沒有析構,
    //delete r4_7;//M2r對象析構了
    
    return 0;   
}
D:\MathTool\gaptool>IRing
R4_7: M2r::~M2r

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章