[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的虛函數都
					//使用基類版本,相當於創建了一個 “軟連接”
					//然而使用時還是要根據參數列表來判斷使用基類的哪個版本
	}

 

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