模板类的问题 - “请求成员'''在'...'中,这是非类型的类型'... <int>()'”

时间:2015-06-25 21:12:07

标签: c++ templates

我正在使用这个模板化类的函数处理各种相关问题。

对于标题我有:

template<typename T>
class Stats {
    public:
        Stats();
        std::vector<T> polyfit( const std::vector<T>&, const std::vector<T>&, int );
        std::vector<T> polyval( const std::vector<T>& oCoeff, const std::vector<T>& );
        QList<int> linearRegression(int, int, int);
        static QList<int> DFT(QList<int>,QList<int>);

};

然后对于函数定义,我有:

template<typename T>
QList<int> Stats<T>::DFT(QList<int> samples,QList<int> freqs){
    ...
    ...
}

然后,这是问题发生的地方,在另一个班级,我有这个:

Stats<int> stats();
QList<int> DFTs = stats.DFT(chunks.at(i),freqs);

问题发生在stats.DFT()行,目前是

request for member 'DFT' in 'stats', which is of non-class type 'Stats<int>()'
     QList<int> DFTs = stats.DFT(chunks.at(i),freqs);
                             ^

Stats<int> stats()更改为Stats<int> stats会导致以下错误:

undefined reference to `Stats<int>::Stats()'

构造函数定义是:

template<class T>
Stats<T>::Stats(){

}

建议的答案不使用模板,应用于此模板类实例化的解决方案会导致新的错误。

0 个答案:

没有答案