我想將任何類型的參數傳遞給我的函數func1()
。 因此,這裏是我的代碼: myclass.h:通過任何類型的參數在C++中使用模板功能
public:
myclass();
template<typename T> void func1(T object);
myclass.cpp:
template<typename T>
void myclass::func1(T object)
{
return;
}
main.cpp中:
int a=0;
myclass::func1<int>(a);
但我得到此錯誤:
error: cannot call member function 'void myclass::func1(T) [with T = int]' without object
我的錯誤在哪裏?
的成員函數仍是一個成員函數,即使它是一個模板。這意味着你需要一個*對象*來調用它。 –
如果您之前沒有使用過模板,那麼您可能會發現[此問題及其答案信息](http://stackoverflow.com/questions/495021/why-can-templates-only-be-implemented-in-的報頭文件)。 –
你也不應該指定模板類型。您應該讓模板參數推演適用於您。 – NathanOliver