#include<iostream>
using namespace std;
const int size=4;
template<class datatype>
class vector
{
datatype *v;
public:
vector()
{
v=new datatype[size];
for(int i=0;i<size;i++)
{
v[i]=0;//initilaizing vector
}
}
vector(datatype *ptr)
{
//v=ptr;
for(int i=0;i<size;i++)
{
v[i]=ptr[i];
}
}
datatype operator*(vector &obj)
{
datatype sum=0;
for(int i=0;i<size;i++)
{
sum+=(this)->v[i] * obj.v[i];
}
return sum;
}
};
int main()
{
int x[4]={1,2,9,11};
int y[4]={4,7,7,4};
vector<int> v1;
v1(x);//no matching call
vector<int> v2;
v2(y);//no matching call
// v1(x);
// v2(y);
int total=v1*v2;
cout<<"Total of v1*v2="<<total<<endl;
}
我在其中传递整数数组 x 和 y 的构造函数给了我以下错误。
错误:对“(向量)(int [4])”的调用不匹配。
错误:对(向量)(int [4])的调用不匹配。将数组分配给指针存在一些问题。
任何人都可以更正我的代码。