但是當我嘗試混合這三者時編譯就不會過了。
比如當我嘗試自做串鏈搜尋時:
- 代碼: 選擇全部
template <typename CT>
CT *result FindObj(wstring name,
typename list<CT>::iterator first,
typename list<CT>::iterator last)
{
typename list <CT>::iterator probe = first;
while(probe != last){
if((*probe).name != name)
probe++;
else
return &(*probe);
}
if(probe == last)
return 0;
}
在main中呼叫這個函式的段落
- 代碼: 選擇全部
Obj *obj_res;
wcin>>name_s;
obj_res=FindObj(name_s,obj_list.begin(),obj_list.end());
單獨按照其中一個的規則來看是沒問題的,但配合起來用時,卻連編譯也過不了。老是出現這種錯誤
- 代碼: 選擇全部
./testing5.cpp: In function ‘int main()’:
./testing5.cpp:49: error: no matching function for call to ‘FindObj(std::wstring&, std::_List_iterator<Obj>, std::_List_iterator<Obj>)’
./testing5.cpp: At global scope:
./testing5.cpp:76: error: expected initializer before ‘FindObj’
我實在不知道到底哪裡出錯了。請問各位有相關的處理經驗嗎?謝謝。