我创建了一个实现各种DSP算法的模板类。我刚刚开始遇到的一个问题是,我想要为真实数据和复杂数据实现算法,但这意味着即使方法的主体完全相同,也必须执行两次方法。一个例子:具有不同参数但代码相同的模板类方法
template <class T>
class DspAlgorithms {
public:
DspAlgorithms();
vector<T> Convolve(vector<T> signal, vector<T> filter);
vector< complex<T> > Convolve(vector< complex<T> > signal, vector<T> filter);
};
我看不出没有声明和实施的方法两次即使他们有完全相同的代码里面的方法。有没有一种巧妙的方法可以避免仅仅复制和粘贴整个方法的实现?
你确定你需要实现方法两次?第一次执行有什么问题? – smac89
第一次执行没有错,但我认为它不能覆盖第二种情况,即“信号”是T的复向量,而“过滤器”是T的向量。 –