这是我的运算符重载,用于将向量乘以一个int:
template <typename T>
int& vector<T>::operator*(const int& b) {
int ans = 0;
for (int i = 0; i < this->size(); i++) {
ans += this[i] * b;
}
return ans;
}
这是我对vector * vector的重载,应该返回点积:
template <typename T>
int vector<T>::operator*(const vector<T>& b) const {
int t = 0;
for (int i = 0; i < b.size(); i++)
t += (this[i] * b[i]);
return t;
}
无论我如何定义或声明它,都会出现错误
没有运算符“ *”与这些操作数匹配
操作数类型为:int * PIC10b :: vector
PIC10b
是我编写的包含向量的名称空间的名称。
答案 0 :(得分:0)
编译器无法理解代码的第一块,因为当函数说它将返回对int的引用时,您试图返回int。
int vector<T>::operator*(const int& b) {