2014-06-19 72 views
0

此代码有什么问题!!!! 未定义的参考`布尔BioQt :: QSequenceValidator :: IsValidDNASequence(BioQt :: QSequence)”对模板静态功能的未定义引用

class QSequenceValidator 
{ 


public: 

    template<class SEQ> 
    static bool IsValidDNASequence(SEQ seq); 
} 

template<class SEQ> 
bool IsValidDNASequence(SEQ seq) 
{ 
    foreach (QChar c ,seq) 
    { 
     if(!CompoundSet::DNACompoundSet().contains(c,Qt::CaseInsensitive)) 
      return FALSE; 

    } 
    return TRUE; 

} 


int main(int argc, char *argv[]) 
{ 
    QCoreApplication a(argc, argv); 
    qDebug()<<QSequenceValidator::IsValidDNASequence(pop); 

    return a.exec(); 
} 

回答

0

添加QSequenceValidator::之前IsValidDNASequence定义。目前你正在定义自由函数,而不是静态成员函数。即

template<class SEQ> 
bool QSequenceValidator::IsValidDNASequence(SEQ seq) 
{ 
    ... 
}