我是一個新手。我試圖在Visual Studio這個模板的功能,但我發現了以下語法錯誤:C++中的模板函數
缺少類型說明符 - 假定爲int。注意:C++不支持默認int
template <typename Object,typename Comparator>
const Object & findMax(const vector<Object> &a, Comparator comp)
{
int maxIndex = 0;
for(int i = 1; i < a.size(); i++){
if(comp.isLessThan(a[maxIndex], a[i]))
maxIndex = i;
}
return a[maxIndex];
}
class LessThanByWidth {
public:
bool isLessThan(const Rectangle &a, const Rectangle &b) const{
return (a.getWidth() < b.getWidth());
}
};
我不知道到底是什麼問題。這個函數沒有在任何類中聲明。
你是如何使用的模板?單獨留下它不會被編譯或生成任何代碼(並且看起來是正確的)。 – 2012-03-06 07:13:29
它適用於g ++(帶有ints向量和簡單的比較器)。你能顯示呼叫代碼嗎? – Vlad 2012-03-06 07:14:10
顯示你稱之爲的位置。 – Griwes 2012-03-06 07:15:14