我有一个用于卷对象的模板类,它operator+=
被实现为成员函数,并且operator+
被实现为非成员函数:
template <typename Class>
Class operator+(Class c1, const Class& c2) {
return c1 += c2;
}
// Add a constant to every element in the volume
template <typename Class, typename dataType>
Class operator+(Class c, dataType constant) {
return c += constant;
}
template <typename Class, typename dataType>
Class operator+(dataType constant, Class c) {
return c += constant;
}
然后我尝试编译以下内容:
volume + 1.3;
其中卷是从模板卷类派生的类型。这给了我以下错误:
error: ambiguous overload for ‘operator+’ in ‘volume + 1.3’
为什么通话模棱两可?