2014-06-19 111 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) 
{ 
    ... 
}