我不是C ++的专家所以请原谅我的问题。我正在尝试使用可能具有任何价值的成员创建一个类。 像这样:
class Input {
private:
string name;
AnyValue value;
}
其中AnyValue可以是:int,float,string。我想出了这个:
·H
template <typename Value>
class Input {
private:
string name;
Value value;
public:
Input<Value>(string name);
}
.cpp
template <typename Value>
Input<Value>::Input(string name) {
this->name = name;
this->value = 0;
}
template <typename Value>
void Input<Value>::setValue(Value value) {
this->value = value;
}
template <typename Value>
Value Input<Value>::getValue(void) {
return value;
}
主要是
int main(int argc, const char * argv[]) {
Input<int> i1 = Input<int>("i1");
}
问题是我从链接器收到此错误消息:
Undefined symbols for architecture x86_64:
"Input<int>::Input(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >)", referenced from:
_main in main.o
但我无法理解我所缺少的东西。