离开 C++ 几年了,我从以下代码中收到链接器错误:
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;
}
如果对任何人都重要的话,可以使用 Code::Blocks 和 GCC。另外,为了乐趣和练习,明确将一些 GA 内容移植到 C++。
必须在实例化给定模板类之前包含模板定义(代码中的 cpp 文件),因此您必须在标头中包含函数定义,或者在使用该类之前 #include cpp 文件(或者显式执行实例化(如果数量有限)。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)