Я изучаю C++ templates.I создал класс шаблонов для добавления двух строк , но я получаю следующую ошибку: Пожалуйста, помогите мне понять эту ошибку.C++ Template Определение класса get error
main.cc:65:52: error: no matching function for call to TheNameHolder<std::basic_string<char> >::TheNameHolder(const char [8], const char [7])
using namespace std;
template <class T>
class TheNameHolder{
T *a, *b;
public:
TheNameHolder(T *first, T *last)
{
a= first;
b= last;
}
T getName();
};
template <class T>
T TheNameHolder<T> :: getName()
{
T returnVal;
returnVal = strcat (returnVal,a);
returnVal = strcat (returnVal, " ");
returnVal = strcat (returnVal, b);
return returnVal;
}
int main()
{
TheNameHolder <string> obj ("Hi", "");
cout << obj.getName();
return 0;
}
вы объявляете параметры в конструкторе в качестве указателей на T, но передавать строки в качестве аргументов в основной. Попытайтесь изменить свой тип параметров на const & T –