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&)'
基本的に、この関数は、引数に値が指定された場合にクラスのプライベート変数「合計」を「値」に設定するデフォルト引数を持つクラスのコンストラクターです。