作者YuShiYau (帶來不幸的貓)
看板C_and_CPP
標題[問題] Function point & template
時間Tue Nov 2 02:19:41 2010
首先附上簡短的示意code
/* A.h */
template<typename T>
class A{
public:
A(int (*fun_ptr)(int));
};
/* A.cpp */
template<typename T>
A<T>::A(int (*fun_ptr)(int)){
}
/* main.cpp */
int fun(int n){
}
int main(){
A<int> a(fun);
}
compile之後會顯示
[Linker error]undefined reference to `A<int>::A(int(*)(int))'
我試過如果在A不使用template時就可以正常執行
想請問一下我這種寫法是犯了什麼錯誤嗎?或是我該如何修改才能正確執行呢?
或是我在分檔的時候constructor的實作部分該如何描述呢?
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 219.71.64.37
※ 編輯: YuShiYau 來自: 219.71.64.37 (11/02 02:20)
推 nowar100:用template的時候實作也放到h裡面 不然cpp要include進來 11/02 02:29
推 wawi:A.cpp不要了 把裡面的東西丟到A.h就可以 11/02 02:35
→ YuShiYau:所以用template的時候不能分檔寫囉>< 11/02 02:41
→ yoco315:恩 合在一起寫 11/02 02:47