C++ 在模板化向量类中重载运算符*时遇到问题
这是我的运算符重载,用于将向量乘以int:C++ 在模板化向量类中重载运算符*时遇到问题,c++,C++,这是我的运算符重载,用于将向量乘以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; } 模板 int&vector::运算符*(常量i
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;
}
模板
int&vector::运算符*(常量int&b){
int ans=0;
对于(inti=0;isize();i++){
ans+=此[i]*b;
}
返回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向量::运算符*(常量向量和b)常量{
int t=0;
对于(int i=0;i
无论我如何定义或声明它,我都会得到一个错误
没有与这些操作数匹配的运算符“*”操作数类型为:int*PIC10b::vector
PIC10b
是我为包含向量而编写的名称空间的名称。编译器不理解第一段代码,因为您试图返回一个int,而函数说它将返回对int的引用
int vector<T>::operator*(const int& b) {
int向量::运算符*(常量int&b){
欢迎使用堆栈溢出。请阅读、获取、阅读以及。最后学习如何创建。我还建议您签出。您的返回类型首先是从。您在T
上创建了此模板,但您假设向量包含int
。该操作符仅适用于PIC10b::vector*int