ile bağlayıcı hatası birkaç yıldır ++ uzakta C mu ve aşağıdaki koddan bir bağlayıcı hatası alıyorum:"Tanımsız sembolleri" basit bir şablon sınıfına
Gene.h
#ifndef GENE_H_INCLUDED
#define GENE_H_INCLUDED
template <typename T>
class Gene {
public:
T getValue();
void setValue(T value);
void setRange(T min, T max);
private:
T value;
T minValue;
T maxValue;
};
#endif // GENE_H_INCLUDED
Gene.cpp
#include "Gene.h"
template <typename T>
T Gene<T>::getValue() {
return this->value;
}
template <typename T>
void Gene<T>::setValue(T value) {
if(value >= this->minValue && value <= this->minValue) {
this->value = value;
}
}
template <typename T>
void Gene<T>::setRange(T min, T max) {
this->minValue = min;
this->maxValue = max;
}
Kod :: Bloklar ve GCC'yi kullanan herkes için önemliyse. Ayrıca, eğlenceli ve pratik yapmak için bazı GA öğelerini C++'ya açıkça taşıyor.
Tam hata iletileri yardımcı olabilir. –
olası nüshası [Neden şablonlar sadece başlık dosyasında uygulanabilir?] (Http://stackoverflow.com/questions/495021/why-can-templates-only-be-implemented-in-the-header-file) –