我正在學習C++模板。我創建了一個模板類,用於添加兩個字符串 但我遇到以下錯誤:請幫我理解此錯誤。C++模板類定義獲取錯誤
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 –