問題:想設計一個類模板,其中的某種特化或者半特化與其他特化略有不同,可能只是增加個別成員函數。應該如何實現?重載還是繼承?
具體問題:比如說想設計一個矩陣類模板< typename T, int numberOfRows, int numberOfColumns >,現在其他特化都可以通用一個模式,只是在bool型矩陣的時候想增加一個⊙(布爾乘法)函數,應該怎么做?
最開始想到的是重載,重載矩陣類的bool特化確實可以實現,但是大部分代碼相同,這個工作是不是有點重復?
然后想到繼承,但是類模板特化的繼承只能繼承其他特化或者其他類,比如不能夠class Test< bool > : public Test< bool >,如此一來,我怎么才能得到原本的bool特化的部分并增加新的函數呢?
于是我現在陷入了窘境,希望得到大家的幫助。謝謝。
(注:不想做一個新的類來繼承模板的bool特化,比如,不想class BoolMatrix : public Matrix< bool >。 )