[c++] using配合虚函数使用

c++并没有要求基类的每个虚函数都要在派生类中实现,但是有些时候我们把基类的这些虚函数都
在派生类中描述一下(方便使用者查看),但是一旦我们把虚函数声明出来,那就意味着我们做了
重载动作,此时就逼得我们不得不写出自己的虚函数重载版本,但是很多时候我们还是想使用基类
版本,那么此时就有两种方案:

方案一:

1)在派生类的重载版本中使用域访问运算符调用基类版本
	class A{
		virtual void func(){
		}
		virtual void func(int){
		}
	}
	class B:public A{
		void func(){
			A::func();
		}
		void func(int i){
			A::func(i);
		}
	}
   可以看到,如果基类虚函数有N个,那么派生类就要写N次,这明显很啰嗦,2)便可以
   使用大粒度的控制来进行粗糙的批量映射。

方案二:

2)使用using来进行说明
	class A{
		virtual void func(){
		}
		virtual void func(int){
		}
	}
	class B:public A{
		using A::func;		//注意,这里仅仅是函数名
					//这一个动作就代表所有名为func的虚函数都
					//使用基类版本,相当于创建了一个 “软连接”
					//然而使用时还是要根据参数列表来判断使用基类的哪个版本
	}

 

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值