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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值