Я работаю над разделом кода, который позволяет пользователю выполнять поиск по различным типам (double
/string
/date
(пользовательский класс)). Это включает в себя метод под названием readInSearchCriteria()
, который я попытался установить в качестве шаблона. Я сделал некоторые исследования в функции шаблона, и вот что у меня до сих пор:C++ - Функция шаблона, которая может возвращать разные типы?
//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
Однако, когда я попытался вызвать его на string
, я получил следующее сообщение об ошибке компилятора:
нет подходящего конструктора не существует для преобразования из «ИНТ» в «станд :: basic_string, станд :: распределителем>»
Может кто-нибудь может предложить мне какие-либо советы о том, что здесь может быть неправильным?
Где мой тип возврата в этом коде? Вам не хватает 'T'? – David
где - возвращаемое значение? не должно быть типа T –