出于教育目的,我正在编写自己的 C++ 数值向量模板类。我希望能够为两个向量的点积编写 (v, w) 并因此重载operator,()
如下:
template<class T>
const T Vector<T>::operator,(const Vector<T>& v) const
{
assertEqualSize(v);
T t;
for(size_t i=0; i<numElements; i++) {
t += elements[i] * v[i];
}
return t;
}
我现在的问题是:如何正确初始化t
一个合理的值(例如0.0
for Vector<double>
)?我试过T t();
了,但是 g++ 告诉我,例如,“double(*)()”不能在 return 语句中转换为“const double”,并且operator+=()
不会为“(double(), double)”定义。
非常感谢你!