我是一个新手。我试图在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