多继承时,多个基类中存在型别相同的虚函数,该怎么做?


#include "stdafx.h" #include<iostream> using namespace std; class A{ public: virtual void show(){ cout<<"in classA"<<endl; } virtual ~A(){} }; class B{ public: virtual void show(){ cout<<"in classB"<<endl; } virtual ~B(){} }; class MidA:public A{ public: virtual void realshowA() = 0; virtual void show(){ realshowA(); } // virtual ~MidA(){} }; class MidB:public B{ public: virtual void realshowB() = 0; virtual void show(){ realshowB(); } // virtual ~MidB(){} }; class Derive :public MidA,public MidB{ public: void realshowA(){ cout<<"realshow in classA"<<endl; } void realshowB(){ cout<<"realshow in classB"<<endl; } // virtual ~Derive(){} }; int main(int argc,char * argv){ A *pa= new Derive; B *pb= new Derive; pa->show(); pb->show(); delete pa; delete pb; return 0; }

 只要基类声明为析构函数派生类的所有析构函数自然也为虚函数。参考effective C++ 条款07

转载于:https://www.cnblogs.com/xiumukediao/p/4637071.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值