C ++错误:默认模板参数可能不在函数模板中使用

时间:2014-10-18 19:41:24

标签: c++ templates compiler-errors default-parameters function-template

我试图了解value = T()的含义以及如何修复它。该函数也是类的构造函数。

template<typename T>
Accumulator<T>::Accumulator(const T& value = T())
{
     total = value;
}

这不编译以下错误是:

error: default argument given for parameter 1 of `Accumulator<T>::Accumulator(const T&)'
error: after previous specification in `Accumulator<T>::Accumulator(const T&)'

基本上,该函数是一个类的构造函数,该类具有一个默认参数,如果为参数赋值,则将我的类的私有变量“total”设置为“value”。

1 个答案:

答案 0 :(得分:3)

您应该只在标题中的函数声明中指定默认参数。