我正在编写一段代码,允许用户按不同类型(double
// string
(date
自定义类))进行搜索。这涉及到一个readInSearchCriteria()
我试图设置为模板的方法。我已经对模板函数进行了一些研究,这是我目前所拥有的:
//template function to process different datatypes
template <typename T> UserInterface::readInSearchCriteria() const {
//template instance to hold data input from keyboard
T t;
//prompt user to enter a value
cout << "\n ENTER SEARCH CRITERIA: ";
//read-in value assigned to template variable
cin >> t;
//return initialised template variable
return t;
}
我在程序中的某个时刻调用了它来处理double
这样的:
double amount = theUI_.readInSearchCriteria<double>(); //works absolutely fine
但是,当我尝试在 a 上调用它时string
,编译器给出了以下错误:
不存在将“int”转换为“std::basic_string, std::allocator>”的合适构造函数
有人可以就这里可能出现的问题向我提供任何建议吗?