具有类型模板成员的类 - 链接错误

时间:2016-02-11 17:56:42

标签: c++ templates

我不是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

但我无法理解我所缺少的东西。

0 个答案:

没有答案