2011-12-02 55 views
1

例如有可能用模板函數替換兩個相似的成員函數嗎?

class A { 
public: 
    void fun(Array a); 
    void fun(Vector a); 
    /* Most codes in these two functions are same. */ 
    /* Can certainly be merged into a template function if they were not member functions. */ 
} 

請注意,我希望能有兩個類答:謝謝樂趣()這兩個版本。

+0

當你嘗試它時發生了什麼? (提示:是的,你可以創建一個模板成員函數。) –

+0

是嗎?什麼是問題。 –

回答

2

即使類本身不是模板化的,也可以編寫一個成員函數,該函數的模板化方式與編寫不是某個類的方法的模板化函數的方式相同。

template <class myType > 
myType func (myType a) { 
/* do something */; 
} 
0

是的,它可以像正常功能一樣創建模板成員函數。只要保持代碼的通用性,就可以在涉及向量和其他數據類型的情況下工作。

template <typename T> 
void fun(T var) {}