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