问题:想设计一个类模板,其中的某种特化或者半特化与其他特化略有不同,可能只是增加个别成员函数。应该如何实现?重载还是继承?
具体问题:比如说想设计一个矩阵类模板< typename T, int numberOfRows, int numberOfColumns >,现在其他特化都可以通用一个模式,只是在bool型矩阵的时候想增加一个⊙(布尔乘法)函数,应该怎么做?
最开始想到的是重载,重载矩阵类的bool特化确实可以实现,但是大部分代码相同,这个工作是不是有点重复?
然后想到继承,但是类模板特化的继承只能继承其他特化或者其他类,比如不能够class Test< bool > : public Test< bool >,如此一来,我怎么才能得到原本的bool特化的部分并增加新的函数呢?
于是我现在陷入了窘境,希望得到大家的帮助。谢谢。
(注:不想做一个新的类来继承模板的bool特化,比如,不想class BoolMatrix : public Matrix< bool >。 )