呼叫者C++模板函數...如何調用鏈接SAIDS時未定義的引用下面的基類(非模板類)
在base.h文件:
class tempc {
public:
int a;
} ;
class base // base class
{
public: // public
template<T> int func(T*); // template defined here
};
在base.cpp文件:
template<T>
int base :: func(T*)
{
std::cout << "base::func called" << std::endl;
return 0;
}
在derived.cpp文件
class derived : public: base // class defined
{
void caller()
{
tempc a;
func<tempc>(&a); // template used here
base::func<tempc>(&a);
}
};
int main()
{
derived d;
d.caller();
}
錯誤是: 未定義參考`空隙鹼:: FUNC(tempc *)」
基是基類
衍生自鹼派生類
此呼叫者甾體抗炎藥未定義參考...
//抱歉,因爲我的源代碼是reaaaaly過大而出現
其中是您的函數的實現/定義? – Hayt
函數模板在哪裏定義*(與您的代碼顯示的只是*聲明相對)? – Angew
歡迎來到Stack Overflow!請**用[mcve]或[SSCCE(Short,Self Contained,Correct Example)](http://sscce.org)**您的問題,幷包含確切的錯誤信息。 – NathanOliver